Você está na página 1de 3

Sistema de numeração Hexadecimal

- Números são simplesmente números

Pode parecer estranho, mas não há muito o que se aprender em hexadecimal que seja
diferente da matemática que você já conhece.
A matemática dos binários, decimais, hexadecimais (que é o mesmo que "base 16"), base 32,
base 36, base 64, assim como de qualquer outra base, é a mesma. O que muda é a quantidade
de símbolos para representar os algarismos.
"Por acaso", como nossos dígitos arábicos comuns vão apenas de 0 a 9, escolheu-se
acrescentar as letras de A a F para se representar os algarismos extras, visto que hexadecimal
é uma notação com 16 dígitos, em vez dos 10 que estamos acostumados.
Em vez de se criar uma nova coleção de desenhos para representar os números após o 9, usou-
se o que já havia pronto, por conveniência - as letras - mas dando um novo sentido a elas.

. Em decimal, usamos os dígitos arábicos 0 1 2 3 4 5 6 7 8 9;

. em hexadecimal, usamos os dígitos 0 1 2 3 4 5 6 7 8 9 A B C D E F;

. em base 36 vamos mais longe ainda, de 0 até a letra Z!

. em binário, vai só de 0 a 1, mas a lógica ainda é a mesma.

Assim como o último número do decimal, que é 9, somado a 1 vira 10 (ou seja, volta pro zero e
ganha uma nova "casa" ao lado), se pegarmos o último "número" do Hexa, que é "F" e
adicionarmos "1", o resultado é 10 em hexadecimal. Da mesma forma, no binário (que é
composto por 2 dígitos, "0" e "1" respectivamente), somando 1 + 1 temos 10 em binário.

DECIMAL HEXADECIMAL BASE36


9 + 1 = 10 F + 1 = 10 Z + 1 = 10

Resumo: a matemática é a mesma.

- Na informática

O Hexadecimal é muito presente na informática pela facilidade que tem de representar os


números de uma outra base: o binário.
Como tanto o hexadecimal quanto o binário são números em potência de dois, você consegue
conciliar alguns conceitos de ambas as bases de forma interessante. Para isto, vamos partir
desta tabelinha (Decimal / Hexadecimal / Binário):

DHB
000
111
2 2 10
3 3 11
4 4 100
5 5 101
6 6 110
7 7 111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111 <-- Atenção a este caso!
16 10 10000
17 11 10001
18 12 10010
19 13 10011

Note que ao chegar no 15 decimal, tanto o hexadecimal quanto o binário chegaram na última
casa antes de "virar" mais uma casa. Como essa "virada" coincide, o hexadecimal se tornou
uma maneira muito prática de representar números binários.
Para cada um dos binários de 4 dígitos (0000 a 1111), temos exatamente um algarismo do
hexadecimal. Sabendo ou entendendo como contar estes 16 dígitos, convertemos qualquer
hexadecimal para binário e vice-versa.
Assim, olhando a tabela acima, fica fácil converter um número binário:

111010110110110 -> original em binário


111 0101 1011 0110 -> dividido em grupos de nibbles
7 5 B 6 -> substituído pelos números da tabela
75B6 -> reescrito em hexadecimal

Onde o hexadecimal entra nessa história então?


O binário é a base da tecnologia corrente, pois tanto nos HDs quanto na memória, ou nos
processadores, a informação é representada como "ligado" ou "desligado" apenas (os
famigerados bits).
Isto não se aplica a processadores quânticos, mas espere mais um pouco pra ter um desses na
sua mesa.
Já faz algum tempo que os processadores e memória em geral utilizam-se de espaços para
armazenar informação organizados em pacotes de 4 bits (chamado de nibble), 8 bits (byte), 16
bits (word), 32 bits (dword), e assim por diante.

. Para representar um nibble (0000 a 1111), basta exatamente um algarismo hexadecimal (0 a


F);

. para representar um byte, bastam dois deles, de 00 a FF;

. e assim seguimos, para as "medidas" como 0000 a FFFF, e maiores.

Exemplos "Visuais":

. É muito mais fácil escrever 5F do que 01011111, não?

. Um MAC Address de placa de rede: 00-5F-FF-E0-AA-FF em vez de 0-95-255-224-170-255

. Cor #FF00CC em vez de rgb(255,0,204);


talvez nesse caso o hexadecimal cause estranheza inicialmente, mas como as cores para a
paleta web 216 são múltiplas de 51 decimal (que é o mesmo que 33 hexadecimal), temos os
algarismos mais comuns sendo 00, 33, 66, 99, cc e ff, que são abreviados para um dígito cada
(#33cc00 é o mesmo que #3c0 para os browsers).

. Um hexdump ficaria muito confuso se representássemos os bytes de 0 a 255 em vez de 00 a


FF

Assim, convencionou-se a usar hexadecimal para muitas coisas em que facilita a leitura e o
contexto da informação.

- Como "ler" o hexadecimal?

R: Sem medo :)
Da mesma forma que em decimal cada "casa" é multiplicada por potências de dez:

279 = ( 2 * 10 * 10 ) + ( 7 * 10 ) + ( 9 )

Em hexadecimal basta multiplicar por potências de 16:

3AF = ( 3 * 16 * 16 ) + ( A * 16 ) + ( F )
é o mesmo que ( 3 * 16 * 16 ) + ( 10 * 16 ) + ( 15 ) em decimal

Parece complexo à primeira vista, mas depois que você se acostuma com os valores de A a F, o
resto vira hábito (da mesma forma que acostumamos com o exemplo de 0 a 9 no dia-a-dia).

Apenas para completar o raciocínio, veja um outro exemplo, desta vez em binário:

1101 = ( 1 * 2 * 2 * 2 ) + ( 1 * 2 * 2 ) + ( 0 * 2 ) + ( 1 )

Guardadas as devidas proporções, é como aquela cena do Cypher em Matrix: "I don't even see
the code. All I see now is blonde, brunette, redhead."

Você também pode gostar