Como usar Hex com binário para a programação C
Enfrentá-lo: Ninguém, nem mesmo um programador C, quer contar bits em um número binário. Ninguém. Talvez algum lerdo em algum lugar pode dizer-lhe que 10110001 é realmente o valor 177, mas a maioria dos programadores não pode. O que um bom programador pode fazer, porém, é traduzir binário em hexadecimal.
Hex não tem nada a ver com Harry Potter. É curto para hexadecimal, que é o sistema de contagem de base 16. Isso não é tão obtuso quanto parece, porque é fácil de traduzir entre base 16 (hex) e binário.
Por exemplo, o valor hexadecimal 10110001 traduz em B1. Os números hexadecimais incluem as letras A a F, representando valores decimais de 10 a 15, respectivamente. UMA B em hexadecimal é o valor decimal 11. As letras são utilizados porque ocupam apenas um espaço de caractere.
Aqui estão os 16 valores hexadecimais de 0 a F e como eles se relacionam com quatro bits de dados:
feitiço | Binário | Decimal | feitiço | Binário | Decimal |
---|---|---|---|---|---|
0x0 | 0000 | 0 | 0x8 | 1000 | 8 |
0x1 | 0001 | 1 | 0x9 | 1001 | 9 |
0x2 | 0010 | 2 | 0xA | 1010 | 10 |
0x3 | 0011 | 3 | 0xB | 1011 | 11 |
0x4 | 0100 | 4 | 0xC | 1100 | 12 |
0x5 | 0101 | 5 | 0xD | 1101 | 13 |
0x6 | 0110 | 6 | 0xE | 1110 | 14 |
0x7 | 0111 | 7 | 0xF | 1111 | 15 |
Esses valores hexadecimais são prefixados com 0x. Este prefixo é comum em C, embora outras linguagens de programação podem utilizar diferentes prefixos ou um postfix.
O próximo valor hexadecimal depois 0xF é 0x10. Não lê-lo como o número dez, mas como # 147-um zero hex. # 148- É o valor 16 em decimal (base 10). Depois disso, hex continua contando com 0x11, 0x12, e até através 0x1F e além.
Sim, e tudo isso é tão divertido como aprender os antigos símbolos de contagem egípcios, então onde ele vai te?
Quando um programador vê o valor binário 10110100, primeiro ele divide em duas mordidelas de 4 bits: 1011 0100. Em seguida, ele converte-o em hex, 0xB4. A linguagem de programação C faz a tradução, bem como, desde que você use o x% ou caracteres de conversão% X, como mostrado na A Little Hex.
A HEX POUCO
#include char * binbin (int n) -int main () {int b, xb = 21-for (x = 0-xlt; 8-x ++) {printf ( "% s 0x% 04X% 4d n", binbin (b), b, b) -blt; lt; = 1} return (0) -} char * binbin (int n) {char bin estática [17] -int x-for (x = 0-xlt; 16 -x ++) {bin [x] = n 0x8000? '1': '0'-n lt; lt; = 1} bin [x] = ' 0'-retorno (bin) -}
O código em um pouco Hex apresenta um valor em binário, hexadecimal e decimal e, em seguida, muda esse valor para a esquerda, exibindo o novo valor. Este processo tem lugar na Linha 13, usando o caractere de conversão% X na instrução printf ().
Bem, na verdade, o espaço reservado é% 04X, que exibe valores hexadecimais usando letras maiúsculas, quatro dígitos de largura, e preenchidos com zeros à esquerda, conforme necessário. O prefixo 0x antes do caractere de conversão apenas exibe a saída no estilo C padrão.
Exercício 1: Inicie um novo projeto usando o código de A Little Hex. Construir e executar.
exercício 2: Alterar o valor da variável b Na linha 9 para ler da seguinte maneira:
b = 0x11-
Salve essa mudança, e construir e executar.
Você pode escrever valores hexadecimais diretamente em seu código. Prefixar os valores com 0x, seguido por um número hexadecimal válido usando letras quer maiúsculas ou minúsculas, quando necessário.