De todo el cuerpo del artículo de Steve Yegge,
Los candidatos deben saber qué bits y bytes son. Deberían poder contar en binario; p.ej. deberían poder decirte qué es 2 ^ 5 o 2 ^ 10, en decimal. No deberían mirarte fijamente cuando le preguntas con 2 ^ 16 es. Es un número especial. Ellos deberían saberlo.
Me despidió de lo que citaste en la pregunta; parecía que un candidato debería poder describir su significado, pero en el contexto dice que los candidatos deben saber, desde el principio, qué es la conversión decimal de 2 16 . / strong>
El significado de esto es que dado que los humanos aún usamos el decimal para contar, especialmente en nuestras cabezas (en la mayoría de las circunstancias), necesitamos conocer las capacidades aproximadas de los bloques de bytes comunes que usamos Para almacenamiento, memoria, o incluso codificación de caracteres. Como un byte es de 8 bits, los más comunes son 8, 16, 24, 32 y 64.
En este momento, diría que 2 32 es la capacidad más común con la que se enfrenta un desarrollador. Sospecho de los desarrolladores que no saben que 2 32 es aproximadamente 4 billones (valor máximo de ~ 2 billones si está firmado), ya que significa que nunca se molestaron en averiguar aproximadamente cuántos registros se pueden almacenar en sus bases de datos que usan 32 bits int
s para las claves primarias, o cuando el código antiguo que usa 32 bits int
s para ID, fechas, etc., deberá volver a configurarse a 64 bits. 1
2 16 es la capacidad total de Java short
. (Total de números entre -2 15 y 2 15 -1)
Un desarrollador debe saber de memoria qué es 8 bits. Entre los muchos usos comunes está la codificación de caracteres ASCII.
No esperaría que un programador supiera 2 14 o 2 18 , pero probablemente esperaría que ellos supieran 2 16 ya que es un número muy frecuente y un número suficientemente corto (65536) para recordar fácilmente el número completo.
1: si navegas en las tablas de clasificación de Call of Duty: MW2 o iPhone Game Center, a menudo verás tramposos en la parte superior con valores de puntaje de 2,147,483,647, que es 2 31 -1, el valor máximo de un entero < 32 .