Não trabalho todos os dias com problemas de big endian e little endian e, portanto, acho muito difícil lembrar qual é o quê.
Recentemente, recebi uma entrevista perguntando a diferença entre os dois; como não me lembrava, decidi "adivinhar" (50% de chance, afinal), mas falhei.
Então, existe algum truque prático conhecido para lembrar qual é a diferença entre big endian e little endian?
endianness
Emiliano
fonte
fonte
Respostas:
Eu sempre pensei que ele definiu o caminho errado, e essa também é a dica para lembrar. Como falante de inglês não nativo, vejo "fim" como o oposto de "começo" (embora obviamente "fim" possa significar um fim - o fim do começo ou o fim do fim). Enfim, eu só lembro que "está definido da maneira errada" :)
Ou, referindo-se à persistência de bits :
Embora o uso usual da palavra endianness se refira a como os bytes são ordenados dentro de uma palavra, seu significado genérico se refere à ordem de subcomponentes endereçáveis individualmente na representação de um item de dados maior ( conforme explicado na Wikipedia ).
fonte
Minha própria dica:
fonte
A melhor maneira de lembrar isso é que os povos civilizados buscam variedade e, portanto, comem seus ovos de maneira diferente do que ordenam seus números. Enquanto escrevemos dígitos decimais começando pelos dígitos grandes primeiro (big endian), comemos ovos cozidos desde o final pequeno (little endian).
fonte
Os números do big endian começam no "big end". Os números little-endianos começam no "finalzinho".
Ambos são uma alusão à questão de por onde começar a comer seu ovo, conforme as Viagens de Gulliver.
Nesse caso, "end" não é o oposto de start, significa apenas qualquer extremo de uma (corda | corda | número | sequência), portanto eles não são chamados de "grande finalista" ou "pequeno finalista" (o que definitivamente seria o oposto de "iniciar").
fonte
A maneira mais fácil de me lembrar é mudar a palavra "endian" para "startian". Inteiros grandes iniciantes começam com o grande final (por exemplo, os bytes mais significativos vêm em primeiro lugar), e inteiros pequenos iniciantes começam com o pequeno final (por exemplo, os bytes menos significativos vêm primeiro).
fonte
Eu nunca conseguia lembrar o que é "big-endian" e o que é "little-endian", mas sabia o endianness dos processadores PowerPC e Intel x86. Pouco tem a maioria das letras em comum com a Intel; portanto, o Intel x86 é um pouco endian.
Claro que isso só é útil se você souber a ordem dos bytes do PPC e do x86. Por outro lado, você deve se lembrar agora de que Intel x86 = little-endian. E lembre-se de que o x86 e o ARM são muito, muito compatíveis, mesmo com conjuntos de instruções totalmente diferentes.
fonte
Eu colocaria desta maneira: grande é lindo!
Big == bonito == certo.
A endianess certa é aquela que você pode ler em um hexdump, que é o que coloca o byte mais significativo em primeiro lugar, como qualquer ser humano.
Pouco == feio == errado.
Os hexdumps produzidos por essa endianess são tão errados que você foge gritando "Brains!". Talvez seja algum tipo de abominação alienígena, só podemos especular sobre a origem dessa atrocidade. No entanto, existe, e estamos presos a ela.
Pitty, nem sempre é a melhor variante que faz a corrida ...
fonte
Little == ugly == wrong
... "Mesmo a pessoa menor pode mudar o rumo do futuro" -Galadrial, LOTR #Em big endian: (ordem crescente)
Baixo para alto, ie
0 1 | 2 3 ^ ^ Fim do início
Em little-Endian: (Ordem decrescente)
Decrescente
ie
3 2 1 | 0 ^ ^ Início Fim
fonte