Por que se usa tanto o hexadecimal na ciência da computação, quando decimal é mais fácil de entender?

Resposta publicada no Quora em 19/04/2021

Em computação, hexadecimal é muito mais fácil de entender.

Quando um programador que manja de hardware olha para um código hexadecimal, ele sabe exatamente como o hardware está se comportando, apenas fazendo contas de cabeça.

Por isso que o hexadecimal é utilizado.

Não leia o resto.

Modo nerdice on.

Computador trabalha com lógica binária.

Pensando em um computador de 8 bits, sabemos que ele consegue manusear 8 bits por vez em sua linha de dados.

No diagrama abaixo temos um computador simplificado:

  • Do lado esquerdo tem o processador e do lado direito tem a memória. Deixei de fora alguns detalhes para ficar mais fácil a explicação.
  • O processador e a memória são interligados pelo barramento de endereçamento, de dados e as linhas de controle.
  • O barramento de dados está detalhando os 8 bits que o compõe.
  • Cada seta no barramento de dados representa um bit de dados.
  • O processador consegue ler e escrever na memória, 8 bits de dados por vez, pois trata-se de um computador de 8 bits.

Os bits, são essas linhas que podem assumir valores binários de zero ou um.

Eletronicamente falando:

Essas linhas dos bits de dados podem estar energizadas ou não.

As linhas que estiverem energizadas terão o valor lógico VERDADEIRO (1 – um) e as que não estiverem energizadas terão o valor lógico FALSO (0 – zero).

Onde entra o hexadecimal:

Note que o barramento de dados foi separado em dois conjuntos de 4 bits.

  • Um conjunto de 4 bits engloba os bits de 0 a 3
  • O segundo conjunto de 4 bits engloba os bits de 4 a 7

A pergunta que a gente faz agora é: Quantas combinações a gente consegue fazer de bits ligados e desligados aqui?

Já dou a resposta, que são 256 combinações indo de todos os 8 bits com valor FALSO – desligados até termos todos os 8 bits com o valor VERDADEIRO – ligados.

Acompanhe, analisando os 4 primeiros bits:

https://qph.fs.quoracdn.net/main-qimg-85eaffbadd3963c04251e5859084f219

Os caras fizeram o seguinte, os quatro primeiros bits, dá para fazer 16 combinações indo do valor decimal zero até o valor decimal 15. Basta continuar com a tabela adicionando os bits que faltam e iremos chegar em 256 combinações, podendo representar os números de zero a 255..

Mais um detalhe: A posição do bit corresponde a um valor decimal. Se os bits zero e dois forem verdadeiros, significa que temos o número 5 nas notações decimal e hexadecimal, por exemplo.

Conforme dito, se pegar o segundo conjunto de 4 bits, também dá para fazer essas dezesseis combinações.

Juntando o primeiro e o segundo conjunto de 4 bits, dá para fazer 16 X 16 combinações, ou seja, dá para fazer 256 combinações, que é capaz de representar os valores decimais indo de zero a 255.

No fim de tudo é isso o que realmente importa:

Para simplificar isso aí, os bits são separados em grupos de 4 bits que são representados pelos símbolos indo de “0” até “F”.

Um código indicando quais linhas de cada conjunto de 4 bits estão ligadas ou desligadas.

Simples e brilhante.

Desenvolvendo computadores:

Agora, se coloque no lugar do desenvolvedor de computadores.

O cara tem que lidar com o circuito elétrico. Tem que olhar para um código e decodificar de cabeça quais linhas do barramento de dados estão energizadas ou não.

É muito mais fácil para um engenheiro de hardware:

  • Separar a linha de dados em grupos de 4 bits.
  • Trabalhar com a notação hexadecimal, 3A por exemplo.
  • Converter esse número, de cabeça para o binário “0011 1010”.
  • E identificar no barramento quais linhas de dados que estão energizadas ou não…

Do que fazer a conversão do número 58 (decimal) para seu correspondente binário, que é bem mais complicado.

É por isso que se utiliza o hexadecimal.

Hexadecimal é para humanos falarem com máquinas, enquanto que decimal é para máquinas falarem com humanos.

Recomendo que seja lido o livro do Tocci, que já indiquei em outras respostas por aqui.

Fontes:

Livro do Tocci:https://loja.grupoa.com.br/sistemas-digitais-principios-e-aplicacoes-12ed9788543025018-p1005546?tsid=34

Demais tabelas e infográficos: Acervo pessoal.

Minha rede

Essa é a rede que atualmente administro.

minharede
Clique na imagem para ampliar
A partir de um roteador LinkSys 2500 usando firmware Linux DD-WRT, montei uma rede OpenVPN para suportar os testes que faço e evitar o tráfego de dados desprotegidos na Internet. Essa rede permite que eu acesse meus documentos de qualquer site, posso habilitar sites de teste aos meus clientes e fazer demonstrações sem necessáriamente abri-las na Internet. Tenho também um servidor GIT privado que uso para suportar o versionamento dos documentos de configuração dos sites que administro. É uma Intranet.

Os sites que administro estão fora da VPN e tem sua respectiva configuração.

Tanto o Desktop como o Notebook do escritório usam máquinas virtuais, ou seja, tenho vários ambientes prontos que configuro comforme as necessidades… Quer um OpenERP, um Linux com emissor de NFE, uma imagem com algum software com uma compilação específica? Basta selecionar a imagem e disparar a VM. O mesmo vale se eu precisar reinstalar alguma máquina; basta pegar a imagem de backup, colocar para rodar e sincornizar o GIT se for o caso.

Isso tem um pouco de Linux, firmware OpenWRT (DD-WRT), OpenVPN, GIT, MySQL, plataforma Magento, Dia para gerar a topologia da rede e por aí afora, sempre usando ferramentas de código aberto.

By Renato Pierri

Last updated by at .