Em “The Martian”, por que ele usaria o hex sobre os valores da base 10 para o alfabeto? [duplicado]

1

A maneira mais rápida de comunicar o idioma inglês seria apenas apontar a câmera para as letras. Ele explica que seria muito difícil dizer para o que a câmera estava apontando. Como o fator limitante é a quantidade de direções discretas que a câmera pode apontar, por que você usaria valores hexadecimais sobre base 10 para traduzir em letras? Em vez de 16 direções, você só teria que discriminar entre 10. Você já está tendo que traduzir da representação numérica para a representação de letra de qualquer maneira. Eu suponho que você precisaria de um delimitador ou um "espaço de palavras" acordado (cada valor será preenchido com zeros se ele usar menos que o tamanho máximo da palavra).

    
por fightermagethief 24.12.2015 / 09:14

2 respostas

Acho que pode haver vários motivos:

  1. Ele não consegue negociar um protocolo antecipadamente. Então, diga que ele usa valores decimais e envia 2,5,5 . É "BEE" (com 1->A ) ou "CFF" (com 0->A ) ou "YE" (se o primeiro número for "25" em vez de "2" e com 1->A ) ou o número literal "255"? Não há como saber sem um delimitador combinado e não há como concordar com um delimitador que ele compõe no ato. Mas se ele envia octetos, 4 bits / um dígito hexagonal de cada vez, há um delimitador implícito a cada dois dígitos.

  2. Ele pode precisar se comunicar com um conjunto de caracteres maior que [A-Z] , especialmente porque ele precisa discutir problemas técnicos. A menos que ele recorra a algo como ASCII, não há uma maneira óbvia para ele codificar outra coisa senão as 26 letras do alfabeto. Como você diz "7", ou void main() { print("Hello"); } , de uma forma que o destinatário irá entender ?

  3. O hex se torna mais eficiente se ele precisar de um conjunto de caracteres com mais de 99 valores nele. Com decimal, assim que ele adiciona um 100º caractere (ou, se ele estiver usando valores decimais para enviar códigos ASCII, então, assim que ele quiser enviar letras minúsculas ou código formatado) ele terá que começar a transmitir e receber 3 numerais para cada valor. . Com hex, ele não tem esse problema até o 256º caractere. Ter que transmitir 3 números por caractere reduz significativamente sua taxa de bits efetiva / largura de banda.

  4. Talvez a vantagem obtida com 10 valores em vez de 16 fosse mínima. Com 10 valores, você tem 36 graus separando cada um. Aos 16 anos, você tem 22,5. E aos 26 anos, você está com cerca de 13,8. Se 13.8 é muito pequeno para trabalhar, mas 22.5 é bom, não há razão para subir para 36. Quanto mais bits você puder enviar de uma só vez, mais rápido você pode se comunicar. Então, faria sentido preferir usar o hex a menos que 22,5 graus não fosse bom o suficiente para ser uma solução viável.

24.12.2015 / 10:21

O Hex tornaria muito mais fácil transmitir o ASCII. (Dois dígitos por caractere como oposto a três.)

O ASCII foi provavelmente escolhido porque é um sistema padrão e mais robusto que um alfabeto normal.

Somehow, we have to have complex astrophysical engineering conversations.

    
24.12.2015 / 09:35