Os sistemas de numeração: a base da computação

Objetivos:
Apresentar os sistemas de notação binário, hexadecimal e octal, bem como os procedimentos necessários para a conversão de representações nesses sistemas para representações na base decimal, com a qual a maioria das pessoas encontra-se acostumada.
Recursos e materiais:
Nenhum
Última atualização:
24/02/2020
Aulas do capítulo:

Acabamos de conhecer as principais unidades que compõem os computadores e as funções de cada uma delas. A CPU realiza o processamento dos dados, a memória guarda as instruções desse processamento e dispositivos de entrada e saída conectam o computador com o mundo externo (visite esse link para aprender mais sobre a estrutura de um computador digital). Fica faltando entendermos como cada uma dessas unidades são capazes de compreenderem as informações que recebem. Como informamos dois números para o computador e ele é capaz de calcular a exata multiplicação entre eles? Como um botão pressionado no teclado ou um clique no mouse são devidamente interpretados pelo computador e exibidos em nosso monitor? Para que possamos nos aproximar das respostas para perguntas como essas, precisamos estudar primeiro os sistemas de numeração.

Os sistemas de numeração começaram a ser elaborados nos primórdios da humanidade, ainda na época das cavernas, quando o ser humano tinha necessidade de contar e manter o controle sobre suas plantações e rebanhos. Apesar dos números serem um conceito abstrato, que utilizam símbolos para representar a ideia de quantidade, eles foram importantes para a civilização e são a base dos computadores que conhecemos hoje. Nessa aula, aprenderemos sobre os sistemas de numeração decimal, binário, hexadecimal e octal, cada um deles determinados por uma base, que indica a quantidade de algarismos disponíveis no sistema, e o valor de cada algarismo, determinado por sua posição na representação do número (notação posicional).

Notação posicional

A notação posicional nos permite converter um número, representado em qualquer sistema de numeração, para um valor ao qual somos capazes de associar uma quantidade. Ela é ilustrada pela Equação (1), onde b indica a base em que o número está representado, ai representa cada um dos algarismos localizados na parte inteira, em posições contadas de 0 a p, da direita para a esquerda, e aj os algarismos da parte fracionária, em posições contadas de 1 a q, da esquerda para a direita.

N = \sum_{i=0}^{p} a_i*10^{i} + \sum_{j=1}^{q} a_j*10^{-j}

Embora essa pareça uma expressão matemática complexa, vejamos a aplicação da notação posicional nos sistemas de numeração decimal, binário, hexadecimal e octal, para observamos como ela é, na verdade, bastante simples.

Sistema decimal

Base: 10
Algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9

A representação decimal é o sistema de numeração que utilizamos em nosso dia-a-dia e, por isso, estamos bastante acostumados a ela. Na maioria das vezes, já somos capazes de observar um número representado nesse sistema e associarmos uma quantidade correta a ele. De qualquer forma, podemos utilizar a notação posicional para facilitar nossa compreensão do número, como mostrado nos dois exemplos abaixo.

149 = \sum_{i=0}^{2} a_i*10^{i} = 9*10^{0} + 4*10^{1} + 1*10^{2} = 9 + 40 + 100

1,49 = \sum_{i=0}^{2} a_i*10^{i} + \sum_{j=1}^{2} a_j*10^{-j} = 1*10^{0} + 4*10^{-1} + 9*10^{-2} = 1 + 0,4 + 0,09

Como estamos trabalhando com números no sistema decimal, o valor da base (b) é igual a 10. No primeiro caso, os algarismos que representam a parte inteira do número, ou seja, os algarismos 9, 4 e 1, ocupam as posições 0, 1 e 2, respectivamente. Assim, conforme sugerido pela Equação (1), basta multiplicar cada um desses algarismos por uma potência de 10 com expoente igual às posições desses algarismos, e somar cada um dos resultados. Já no segundo exemplo, o número representado possui partes inteira e fracionária, sendo que o algarismo 1 ocupa a posição 0 da parte inteira e os algarismos 4 e 9, as posições 1 e 2 da parte fracionária.

Sistema binário

Base: 2
Algarismos: 0 e 1

O sistema de numeração binário trabalha com apenas algorismos 0 e 1, o que facilita sua representação através de níveis de tensões baixo (valor 0) e alto (valor 1). Por isso, esse é o sistema de numeração mais utilizado pelos computadores. Podemos representar qualquer número binário por um equivalente no sistema decimal através da notação posicional ao aplicarmos a Equação (1), como vemos nos dois exemplos a seguir.

1101_{(2)} = 1*2^0 + 0*2^1 + 1*2^2 + 1*2^3 = 13_{(10)}

0,101_{(2)} = 1*2^{-1} + 0*2^{-2} + 1*2^{-3} = 0,625_{(10)}

Para os dois casos ilustrados, o valor de b é igual a 2, uma vez que estamos convertendo números do sistema binário. No primeiro exemplo, o número possui algarismos apenas na parte inteira e a contagem de suas posições começa da direita para a esquerda, a partir de 0. Isso nos mostra que 1101(2) é a representação do 13(10). Já no segundo exemplo, o número possui apenas algarismos fracionários, sendo que as posições deles são contadas a partir de 1, da esquerda para a direita. Nesse caso, ao aplicarmos a notação posicional, entendemos que 0,101(2) é igual a 0,625(10).

Sistema hexadecimal

Base: 16
Algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(=10), B(=11), C(=12), D(=13), E(=14) e F(=15)

O sistema hexadecimal está relacionado com a computação devido à sua forma compacta de representação e a facilidade de conversão entre ele e os números do sistema binário. Além disso, novamente através da notação posicional, qualquer número hexadecimal também pode ser convertido em um número decimal, o qual somos melhor capazes de compreender. Para essa conversão, substituimos o valor de b na Equação (1) pela base 16, conforme ilustrado nos exemplos abaixo:

84_{(16)} = 4*16^0 + 8*16^1 = 132_{(10)}

5,A_{(16)} = 5*16^{0} +A*16^{-1} = 5*16^{0} +10*16^{-1} = 5,625_{(10)}

Sistema octal

Base: 8
Algarismos: 0, 1, 2, 3, 4, 5, 6 e 7

A última forma de representação que veremos nessa aula é o sistema de numeração octal, que já foi bastante utilizado em aplicações de informática e computação, embora, hoje, seja dada preferência pelo sistema hexadecimal. Mais uma vez, por se tratar também de um sistema de numeração que utiliza notação posicional, pode ser convertido para a base 10 ao seguirmos um procedimento similar ao utilizado nos outros casos. Para isso, basta utilizarmos o valor de b como igual a 8 e aplicarmos a Equação (1). Vejamos os dois casos a seguir:

204_{(8)} = 4*8^0 + 0*8^1 + 2*8^2 = 132_{(10)}

5,5_{(8)} = 5*8^{0} + 5*8^{-1} = 5,625_{(10)}

Continuaremos ainda nossos estudos sobre os sistemas de numeração, para aprendermos também como converter números entre cada uma das representações acima. Ao elaborarmos nossos programas de computador, precisaremos fazer operações matemáticas e enviarmos/recebermos informações, atividades essas que, muitas vezes, poderão ser otimizadas se tivermos um pouco de conhecimento sobre esses sistemas de numeração. Para ficar por dentro das novidades sobre esse e outros temas relacionados à Mecatrônica, não deixe de se cadastrar em nosso blog clicando aqui. Vai ser um prazer receber você no time!

Referências bibliográficas

[1] A. A. T. Maia, “Fundamentos da Computação – Algoritmos – Programação em Linguagem C”. Universidade Federal de Minas Gerais, 2013.

Deixe um comentário

%d blogueiros gostam disto: