Acho que pode haver vários motivos:
-
Ele não consegue negociar um protocolo antecipadamente. Então, diga que ele usa valores decimais e envia
2,5,5
. É "BEE" (com1->A
) ou "CFF" (com0->A
) ou "YE" (se o primeiro número for "25" em vez de "2" e com1->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. -
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", ouvoid main() { print("Hello"); }
, de uma forma que o destinatário irá entender ? -
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.
-
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.