Da tutto il corpo dell'articolo di Steve Yegge,
Candidates should know what bits and bytes are. They should be able to count in binary; e.g. they should be able to tell you what 2^5 or 2^10 is, in decimal. They shouldn't stare blankly at you when you ask with 2^16 is. It's a special number. They should know it.
Sono stato buttato fuori dal pezzo che hai citato nella domanda; sembrava che un candidato dovesse essere in grado di descriverne il significato, ma nel contesto sta dicendo che i candidati dovrebbero sapere, in cima alla loro testa, cosa è la conversione decimale di 2 16 .
Il significato di questo è che poiché noi umani utilizziamo ancora i decimali per il conteggio, specialmente nelle nostre teste (nella maggior parte dei casi), abbiamo bisogno di conoscere le ruvide capacità dei blocchi di byte comuni che usiamo per la memorizzazione, la memoria o persino la codifica dei caratteri. Poiché un byte è 8 bit, i più comuni sono 8, 16, 24, 32 e 64.
Al momento, direi che 2 32 è la capacità più comune con cui uno sviluppatore si occupa. Sono sospettoso degli sviluppatori che non sanno che 2 32 è di circa 4 miliardi (valore massimo di ~ 2 miliardi se firmato), poiché significa che non si sono mai preoccupati di scoprire approssimativamente quanti record possono essere archiviati nei loro database che utilizzano il 32% bit diint
s per le chiavi primarie, o quando il vecchio codice che utilizza il 32% bitint
s per ID, date, ecc. dovrà essere rifatto a 64 bit. 1
2 16 è la capacità totale di Java short
. (Numero totale compreso tra -2 15 e 2 15 -1)
Uno sviluppatore dovrebbe sapere a memoria cosa sia 8 bit. Tra i molti usi comuni è la codifica dei caratteri ASCII.
Non mi aspetto che un programmatore sappia 2 14 o 2 18 , ma probabilmente mi aspetterei che sappiano 2 16 dato che è un numero molto comune e un numero abbastanza breve (65536) per ricordare facilmente il numero completo.
1: Se sfogli le classifiche di Call of Duty: MW2 o iPhone Game Center vedrai spesso imbroglioni in alto con valori di punteggio elevato di 2.147.483.647, ovvero 2 31 -1, il valore massimo di un intero 2 32 firmato