Sistema Hexadecimal

Memória e cores em um sistema de letras e números.

Introdução

Se você trabalha com Desenvolvimento Web, Designer Gráfico, Ciência da Computação ou é um estudante de alguma dessas áreas já deve ter ouvido falar do Sistema Hexadecimal ou já dever ter visto um código similar a #FFFFFF ou #000000 por aí. E se você é um desenvolvedor ou pretende ser um é imprescindível que você conheça esse sistema.

Antes de nos aprofundarmos no Sistema Hexadecimal, vamos voltar um passo e falar um pouco sobre o Sistema RGB, um sistema de cores um pouco mais presente no nosso dia a dia e que pode nos ajudar a chegar a uma conclusão mais clara, facilitando o entendimento de quem é recém-chegado no mundo da ciência da computação.

Sistema RGB

RGB é uma forma de dados para representar cores. Ele possui um tamanho total de 24 bites (8 bits para cada representação das cores primárias).

RGB é a representação para (R) red/vermelho, (G) green/verde e (B)blue/azul e é representado numericamente da seguinte forma RGB (0, 0, 0), onde o primeiro elemento indica a quantidade de vermelho (R) presente na cor, o segundo a quantidade de verde (G) e o terceiro a quantidade de azul (B) e os valores podem ir de 0 a 255, onde 0 significa a ausência total daquela determinada cor e por outro lado 255 sua totalidade. Quando há a ausência total das três cores indicadas pelo código RGB (0, 0, 0,) que terá como resultado a cor preta, sendo o contrário representado pelo código RGB (255, 255, 255) que terá como resultado a cor branca, a soma de todas as cores em sua total intensidade.

Sistema Hexadecimal

Essas mesmas cores podem ser representadas utilizando o Sistema Hexadecimal, onde a ausência total de cores primárias, que resulta na cor preta é indicada pelo código #000000 e a soma da total intensidade de todas as cores primárias é representada por #FFFFFF. Ou seja, para cada cor primária no RGB temos um par de elementos no Hexadecimal. RGB (255, 255, 255) seria #FF FF FF, ou RGB (255, 0, 255) seria #FF 00 FF.

Mas você saberia dizer como o Sistema Hexadecimal realmente funciona? Porque ele tem letras e números?

Bom, em um universo binário, que é o universo dos computadores só existem 0s e 1s. No universo dos decimais temos um sistema que vai de 0 a 9. E agora iremos conhecer mais a fundo o Hexadecimal, que é um sistema notacional representado pela soma do sistema decimal (0 a 9) mais as letas de A a F. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

A primeira informação importante sobre o sistema hexadecimal é que, na verdade, os 16 elementos da sequência não são tratados como números e sim como símbolos, onde o A representa o valor 10, o B representa 11 e assim por diante até a letra F que representa o valor 16.

Então como vamos do 00 ao FF ou do 0 ao 255 respectivamente?

O Sistema Hexadecimal é um sistema de base 16, então o primeiro elemento dos pares do sistema hexadecimal é representado por 16¹ e o segundo é representado por 16. Então se o sistema hexadecimal é constituído de 3 pares contendo dois elementos cada temos a seguinte forma numérica # 16¹16⁰ 16¹16⁰ 16¹16⁰

Símbolos hexadecimais

De início parece complicado, não é? Mas calma que é simples e divertido e importantíssimo. Pra facilitar o entendimento vamos analisar a seguinte tabela:

Tabela grade de valores numeros do sistema hexadecimal

Como uma matriz, o primeiro elemento que tem sua base 16¹ (16 ^ 1 = 16) terá seu respectivo valor multiplicado por 16. O segundo elemento que tem sua base 16 (16 ^ 0 = 1) terá seu valor multiplicado por 1.

Exemplo de conversão de hexadecimal em numerico

Temos como exemplo o elemento FF, ou seja, o primeiro F que é o elemento de base 16¹ e é representado numericamente pelo número 15:

15 x 16¹ → 15 x 16 = 240

O segundo elemento F (numericamente representado pelo valor 15) que é o elemento de base 16⁰:

15 x 16 → 15 x 1 = 15

Por fim temos a soma dos dois elementos:

240 + 15 = 255

Agora é possível voltar na matriz acima e perceber que para chegar ao valor de 255 ou FF foi preciso percorrer primeiro 16 elementos por 15 vezes (da linha 0 até a linha F) e depois ter percorrido mais 15 elementos uma única vez (da coluna 1 a coluna F)

Vamos fazer mais um exemplo para fixar? Agora utilizando o valor hexadecimal de #A8.

Sabemos que em hexadecimal a letra A é o símbolo que representa o valor 10. Sabemos também que A por ser o primeiro elemento da composição, ele tem base 16¹, ou seja, temos a operação matemática de 16¹ x A → 16 x 10 = 160. Agora analisando o segundo elemento que possui valor 8 e possui base 16⁰, temos 16⁰ x 8 → 1 x 8 = 8. Somando os dois elementos chegamos ao valor de 168.

Tabela grade de valores números do sistema hexadecimal

Podemos verificar o resultado na matriz e identificar que o valor representado pelo elemento #A8 está na linha A, coluna 8, representado pelo valor 168.

Voltando as cores agora você pode compreender o porquê a representação RGB (255, 255, 255) é igual a representação #FFFFFF, ou RBG (121, 58, 63) é igual a #793A3F.

Mas representação de cores é uma das muitas utilidades do sistema hexadecimal.

Conclusão

Pra concluir é preciso saber que no fim de todo o processo tudo será convertido para o sistema binário, afinal essa é a língua que o computador fala. Então temos que olhar para o valor que os caracteres hexadecimais irão representar e dessa forma poderemos saber até a quantidade de memória que será necessária para armazenar essa informação.

Por exemplo, os caracteres hexadecimais FF forma o número decimal 255 como já podemos ver, e esse valor é igual ao código Binário de oito dígitos de 1, 11111111.

Binario para numerico

Então temos que cada valor hexadecimal pode utilizar até 8 bits de memória, ou 1 byte.

Usar elementos como 00 ou FF é uma boa forma de representar um total de 8 bits.

Conhecer o sistema hexadecimal é essencial quando se trata de gerenciamento de memória, endereços, alocação, mas isso já é assunto para outro artigo, onde iremos falar também sobre Pointers.

Até lá!

--

--