Article image
Carlos Ribeiro
Carlos Ribeiro31/03/2021 19:50
Compartilhe

Aprendendo Sobre Decimais e HexaDecimais

  • #Android

Ao fazer um dos desafios do Bootcamp da Everis utilizando Koltin, me deparei com um desafio que pedia para converter números hexadecimais para decimais e vice e versa. Não fazia ideia do que eram números hexadecimais.

Números decimais a gente aprende no colégio, números binários ouvimos por ai as vezes, porém nunca ouvi falar em números hexadecimais.

Então, visando ajudar os amigos que possam ter esse mesmo problema no desafio, resolvi compartilhar esse artigo explicando sobre estes números.

1.SISTEMA DE NUMERAÇÃO DECIMAL

O sistema de numeração decimal sempre utiliza 10 algarismos para sua representação. São eles: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9.

Para formar um número, associa-se um ou mais algarismos, e a posição de cada algarismo terá um peso de uma potência de 10. Dessa forma temos as unidades, dezenas, centenas e milhares. Cada posição terá um peso na representação, como pode ver-se na imagem abaixo:

image

Representação de um número em base 10 - Fábio Souza/ Embarcados

Como exibido na figura acima, o sistema decimal e representado na base 10 e cada posição é múltiplo de uma potência de 10. A seguir são apresentados dois exemplos:

Exemplo 1:

image

Exemplo 2

image

2. Sistema de Numeração Hexadecimal

O sistema de numeração hexadecimal sempre utiliza 16 algarismos para sua representação. Sendo eles: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E e F. Assim como no sistema decimal, a associação dos algarismos representam diferentes números e a posição do algarismo será um múltiplo de potência de 16. Desta forma, o sistema hexadecimal é um sistema de base 16. Podemos fazer uma relação entre o sistema hexadecimal e o sistema decimal, como exibido na tabela abaixo:

image

A seguir será apresentado uma representação de um número hexadecimal.

image

Representação de um número em base 16 - Fábio Souza/ Embarcados

Como exibido a cima, o sistema hexadecimal sempre será representado na base 16 e cada posição é múltiplo de uma potência de 16. Vou lhes Mostrar dois exemplos a seguir

Exemplo 1:

image

Exemplo 2:

image

Resolvi compartilhar esse artigo, pois o mesmo me ajudou bastante a entender o que são esses números e assim pude fazer meu desafio. Pretendia compartilhar aqui como fazer conversão de decimal para hexadecimal e vice e versa porém como o artigo já ficou grande vou deixar esse assunto para outro artigo.

Espero ter ajudado e bons ventos a todos.

Referência

https://www.embarcados.com.br/sistemas-de-numeracao-em-eletronica/

Compartilhe
Comentários (4)

G

Gabriel - 01/04/2021 00:29

Alessandro, isso é devido a linguagem utilizada pelo computador, que é a linguagem binária, a linguagem binária é bem simples, só precisa se basear em 2 estados, por exemplo na "ausência" ou na presença de algo, no caso de um computador podemos colocar como sendo a ausência ou a presença de eletricidade, uma determinada faixa de eletricidade de 0 à X é definida como sendo um dos estados, e outra faixa acima de Y é definida como sendo o outro estado, um transístor é quem vai definir se a energia vai passar ou não(definindo o estado verdadeiro ou falso); essa é a menor unidade, um bit único, é apenas 0 ou 1, nada mais, você precisa agrupar ele com outro, na verdade você precisa agrupar ele com muitos outros para criar um real significado, como por exemplo o alfabeto inteiro, ou mesmo números, cada conjunto combinado de 0's e 1's representa uma coisa diferente, por exemplo, uma contagem de 0 à 15 poderia ser feita com:

0 0 0 0 - 0
0 0 0 1 - 1
0 0 1 0 - 2
0 0 1 1 - 3
0 1 0 0 - 4
0 1 0 1 - 5
0 1 1 0 - 6
0 1 1 1 - 7
1 0 0 0 - 8
1 0 0 1 - 9
1 0 1 0 - 10
1 0 1 1 - 11
1 1 0 0 - 12
1 1 0 1 - 13
1 1 1 0 - 14
1 1 1 1 - 15

Perceba que mesmo com poucos bits é meio confuso trabalhar com bits puros, imagine agora grandes valores que precisem de muitos bits, seria um trabalho colossal. É aí que vem a representação hexadecimal, é uma forma inteligente de representar conjuntos de bits, ela é simples, a contagem vai de 0-9 como de costume, e o que ultrapassa isso é preenchido com letras do alfabeto A,B,C,D... E por que não utilizar simplesmente 10, 11, 12, 13... em vez de utilizar letras? Isso é porque é preciso 1 único digito para representar, caso contrário seria uma bagunça. Certo... agora vamos a outra questão, por que de 0 à F e não de 0 à H ou de 0 à Z? Isso é porque ao criar os sistemas os projetistas procuravam quase sempre usar potência de 2, o que faz sentido se considerarmos que o sistema base do computador é um sistema binário, assim usando potência de 2 poderiam evitar possíveis problemas. É aí que vem a explicação do porquê terem escolhido o sistema hexadecimal(de 0 à F), F nada mais é do que o maior valor construído com o menor conjunto de bits:

1 1 1 1 = F = 15

Perceba que são 4 bits, 4 é potência de 2, e se usássemos outra potência de 2? Talvez em vez de 4 poderíamos usar 2:

1 1 = 3

E o maior valor obtido com essa unidade seria 3... E se em vez de 2 usássemos 8?

1 1 1 1  1 1 1 1 = 255

Usando 8 bits o valor foi 255, mas nosso alfabeto só tem 26 letras, então depois de Z teríamos que reiniciar contando A1 ou AA, ou utilizando outros símbolos para representar uma continuação, teríamos que ter símbolos suficientes até chegar em 255, perceba que o objetivo aqui é representar o maior conjunto de bits com um único símbolo, a opção que melhor atende isso é a que utiliza 4 bits, pois 2 bits são insuficientes e 8 bits complicam demais, então 4 bits é a melhor opção; e qual o maior valor que podemos produzir com 4 bits?

1 1 1 1 = 15 = F

15, ou F, logo temos um sistema que numera de 0 à 15, ou seja, dezesseis números, o nosso hexadecimal. Esse conjunto de 4 bits é chamado de nibble, dois nibbles juntos formal 1 byte, 1 byte vai de 00 à FF, 00 à FF é a representação de todos os símbolos padrões da tabela ascii. No fim tudo é uma forma de você simbolizar algo de maneira que simplifique as coisas, mas o que você deve se lembrar é que no fim das contas tudo ainda é binário, o sistema ainda trabalha em binário e só entende binário.


Carlos Ribeiro
Carlos Ribeiro - 31/03/2021 21:32

Pelo que entendi pesquisando a maquina trabalha melhor com números binários e hexadecimais

Alessandro Araújo
Alessandro Araújo - 31/03/2021 20:45

Muito interessante!

Parabéns pelo artigo!


Mas porque será que optaram por utilizar números hexadecimais, ao invés de, simplesmente, utilizar números do sistema decimal durante a elaboração de uma linguagem de programação?

Joao Santos
Joao Santos - 31/03/2021 20:38

Parabens, gostei do artigo