Big Endian vs Little Endian

10/06/2008 at 21:23 (Antes da primeira prova) (, )

Como proceder para ler dados da memória principal?

Da esquerda para a direita?

Da direita para a esquerda?

Do meio para as extremidades?

Tá, do meio para as extremidades torna-se um tanto desnecessário comentar. No entanto ainda hoje existe a questão: “de que ‘lado’ começar?”

Por um lado temos o Big Endian (ou grande fim O.o) que começa pelo “maior” lado, aquele dos bits MAIS significativos. Do outro temos o Little Endian (precisa dizer que é pequeno fim?) que começa pelo lado “pequeno”, ou seja, o lado que contém os bits MENOS significativos.

O Big Endian tem boas vantagens, afinal ele pensa igual a nós ocidentais. Ele lê da ‘esquerda’ para a direita, do algarismo MAIS significativo até chegar ao MENOS significativo. Isso facilita a nossa vida de programador, uma vez que, utilizando métodos que se assemelhem à nossa natureza, podemos programar com mais facilidade. No entanto grande parte da perda dele se deve justamente ao mesmo fato! Ler os algarismos partindo do mais significativo significa uma grande perda de eficiência ao se incrementar o número, pois para isso deve-se conhecer TODO o número e alocar o espaço necessário para ele. Fora o fato de que, numa busca, primeiro a gente descobre a faixa que ele está, para só então descobrir a linha.

A imagem a seguir, retirada da Wikipédia, demonstra o funcionamento do Big Endian.

Big Endian

O Little Endian tem como desvantagem a vantagem do Big Endian e vice-versa. Afinal ler da direita para a esquerda só dá certo lá no oriente, onde eles lêem até de cima para baixo! Imagine você ter que programar uma coisa que usa um padrão totalmente fora da convenção do dia a dia. Deve ser estranho. Porém, esse modo de leitura facilita na incrementação do número, afinal à medida que se vai lendo os algarismos, vai-se acrescentando-os em seus devidos lugares na ordem MENOS SIGNIFICATIVOS -> MAIS SIGNIFICATIVOS. Isso gera uma certa eficiência, não?

A imagem a seguir, retirada da Wikipédia, demonstra o funcionamento do Little Endian.

Little Endian

Só para salientar, de acordo com esse site (http://support.microsoft.com/kb/102025/pt-br) o Windows NT foi construído com a tecnologia Little Endian e NÃO é compatível com Big Endian. Em sua horrível tradução para o português (tradução automática), o site explica que isso se deve ao fato da maioria dos programas terem dependências com o Little Endian (ao menos foi isso que eu consegui entender O.o).

Acho que por enquanto é só isso =)

Link Permanente Deixe um comentário