OK, sinto-me estúpido ao perguntar isso - mas no artigo de Jeff: Como acertar a tela do telefone da entrevista e originalmente declarado nas 5 perguntas essenciais da tela do telefone :
Eles não devem olhar fixamente para você quando você perguntar com 2 ^ 16 é. É um número especial. Eles deveriam saber disso.
Sou um desenvolvedor \ engenheiro de software \ macaco de código \ há algum tempo e acho que nunca me deparei com isso. Quero dizer, certamente posso contar valores binários, realizar operações básicas neles, etc. etc. Mas não vejo o que é "especial" sobre esse valor.
2^16.1
também é uma potência de 2, mas nada de especial. O mesmo para2^0
.2**0
is1
, que é de fato um número muito especial;) Mas sim, geralmente estamos preocupados apenas com potências de dois onde o expoente é um número inteiro positivo.Respostas:
(2 16 - 1) ou 65535 ou
0xFFFF
ou "64k" é o valor máximo de 2 bytes. Por um longo tempo, as CPUs usaram a arquitetura de 16 bits e os SOs também se basearam em operações de 16 bits e "palavras" . Havia comandos de 16 bits e endereços de memória de 16 bits. Muitos sistemas / compiladores ainda usam 16 bits para números inteiros.Portanto, (2 16 - 1) é especial porque é o maior número que um número inteiro de 16 bits (sem sinal) pode conter e o maior endereço de memória que uma arquitetura de 16 bits pode acessar.
fonte
Do corpo inteiro do artigo de Steve Yegge,
Fui expulso da parte que você citou na pergunta; parecia que um candidato deveria ser capaz de descrever sua importância, mas, no contexto, ele está dizendo que os candidatos devem saber, de cabeça para baixo, qual é a conversão decimal de 2 16 .
O significado disso é que, uma vez que nós, humanos, ainda usamos decimal para contagem, especialmente em nossas cabeças (na maioria das circunstâncias), precisamos conhecer as capacidades aproximadas dos blocos de bytes comuns que usamos para armazenamento, memória ou até codificação de caracteres. Como um byte tem 8 bits, os mais comuns são 8, 16, 24, 32 e 64.
No momento, eu diria que 2 32 é a capacidade mais comum com a qual um desenvolvedor lida. Desconfio de desenvolvedores que não sabem que 2 32 é de aproximadamente 4 bilhões (valor máximo de ~ 2 bilhões se assinado), pois significa que eles nunca se preocuparam em descobrir aproximadamente quantos registros podem ser armazenados em seus bancos de dados que use s de 32 bits
int
para chaves primárias ou quando o código antigo usandoint
s de 32 bits para IDs, datas etc. precisará ser refatorado para 64 bits. 1 12 16 é a capacidade total do Java
short
. (Número total entre -2 15 e 2 15 -1)Um desenvolvedor deve saber de cor o que é 8 bits. Entre os muitos usos comuns, está a codificação de caracteres ASCII.
Eu não esperaria que um programador conhecesse 2 14 ou 2 18 , mas provavelmente esperaria que eles conhecessem 2 16, pois é um número muito comum e um número curto o suficiente (65536) para lembrar facilmente o número inteiro.
1: Se você navegar nas tabelas de classificação de Call of Duty: MW2 ou iPhone Game Center, verá frequentemente trapaceiros no topo com altos valores de pontuação de 2.147.483.647, que é 2 31 -1, o valor máximo de um número 2 32 assinado .
fonte
A única razão que eu vejo em relação a 2 16 como "especial" é porque é um mais que o número inteiro mais alto que você pode armazenar em um único registro em um sistema operacional de 16 bits.
Da mesma forma, você pode aplicar a mesma lógica a 2 sistemas operacionais de 32 e 32 bits.
Eu precisaria conhecer mais contexto para a pergunta antes de poder dizer se era um conhecimento significativo ou não.
fonte