Existe alguma lógica para por que no alfabeto binário, a = 01000001 e o mesmo com as outras letras, ou alguém escolheu aleatoriamente aquela sequência de números para representar a?


Melhor resposta

Sim, existe.

A parte inferior da faixa de 8 bits é reservada para códigos de controle. Em particular, 00000000 não pode ser atribuído a um caractere textual, porque você deseja que um cartão perfurado em branco signifique , bem … nada. Além disso, é bom ser capaz de eliminar um erro digitando uma linha inteira, então 11111111 é atribuído ao código de controle DELETE e, combinado com o fato de que os caracteres de texto precisam caber em 7 bits para compatibilidade com versões anteriores, isso significa a extremidade superior da faixa também é reservada para códigos de controle.

Portanto, os caracteres alfabéticos devem ir para algum lugar no meio. Seria conveniente se você pudesse converter entre maiúsculas e minúsculas invertendo um único bit, o que significa que os caracteres maiúsculos e minúsculos devem ser separados por um intervalo de 32 (a menor potência de dois maior que 26). Também é conveniente se as letras dentro de um caso forem contíguas, com sinais de pontuação agrupados nas extremidades, nos 6 pontos de código que você deixou em cada intervalo de 32 caracteres e se a sequência de pontos de código para caracteres alfabéticos corresponder à sua ordem alfabética tradicional. Seria ainda mais conveniente se você pudesse converter um caractere alfabético em sua posição alfabética numérica com uma máscara de bits simples.

Tudo isso restringe severamente as possibilidades de onde você pode começar os caracteres alfabéticos. Fora desse intervalo limitado de possibilidades, 65, ou 0100001, foi escolhido para A, e 97, ou 01100001, foi escolhido para a (em vez de, digamos, o contrário) por razões históricas, para manter o passado compatibilidade com antigos sistemas de texto de 5 bits apenas com maiúsculas, em que A é de fato atribuído o ponto de código 1 (00001), permitindo a conversão entre codificações por simples adição ou truncamento de um prefixo.

Resposta

Que “alfabeto binário”? Você quer dizer ASCII? Porque se você fizer isso, então “a” não é igual a 0100 0001. Um “A” maiúsculo é equivalente a 0100 0001. O caractere ASCII para “a” é 0110 0001. Considerando que se você quisesse escrever “a” em EBCDIC, para exemplo, isso seria 1000 0001 e A seria 1100 0001.

Os primeiros 32 caracteres na tabela ASCII não são imprimíveis, caracteres de controle que foram originalmente usados ​​para controlar o hardware – por exemplo, 0000 0111 é chamado de BEL, porque costumava funcionar o sino nas antigas máquinas de teletipo eletromecânico para as quais o ASCII foi originalmente inventado. Os caracteres impressos só começaram no ASCII decimal 33, com os caracteres de pontuação primeiro (!), Depois os dígitos, depois as letras maiúsculas e depois as letras minúsculas, terminando com a tecla DEL em ASCII 127, a extremidade superior dos 7 bits usados ​​naquele tempo.

Então, não, alguém não “escolheu aleatoriamente uma sequência de números”, foi um padrão elaborado pela American Standards Association (agora ANSI) em 1960, com base em códigos telegráficos pré-existentes. Esse padrão continuou a ser atualizado e expandido, mas os primeiros 128 caracteres e controles nunca foram alterados.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *