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çoBinárioDecimalfeitiçoBinárioDecimal
0x0000000x810008
0x1000110x910019
0x2001020xA101010
0x3001130xB101111
0x4010040xC110012
0x5010150xD110113
0x6011060xE111014
0x7011170xF111115

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.

menu