Você está na página 1de 55

Sistemas Digitais

Códigos e Sistemas de Numeração


Diretor Executivo
DAVID LIRA STEPHEN BARROS
Gerente Editorial
CRISTIANE SILVEIRA CESAR DE OLIVEIRA
Projeto Gráfico
TIAGO DA ROCHA
Autoria
DANYELLE GARCIA GUEDES
ALAN DE OLIVEIRA SANTANA
AUTORIA
Danyelle Garcia Guedes
Sou Mestranda pela Universidade Federal de Campina Grande em
Ciência e Engenharia de Materiais, Especialista pela Faculdade Campos
Elíseos em Docência do Ensino Superior e Bacharel pela Universidade
Federal de Campina Grande em Ciência e Engenharia de Materiais. Atuo
como membro e pesquisadora, no Laboratório de Desenvolvimento de
Biomateriais do Nordeste (Certbio), na pesquisa e no desenvolvimento
de dispositivos biossensores e biomateriais, bem como no Laboratório
de Tecnologia de Materiais da UFCG no desenvolvimento de materiais
cerâmicos e nanofibras. Atualmente, sou membro do Laboratório de
Materiais Cerâmicos e Avançados. Sou apaixonada pelo que faço e adoro
transmitir minha experiência de vida àqueles que estão iniciando em suas
profissões. Por isso, fui convidada pela Editora Telesapiens a integrar seu
elenco de autores independentes. Estou muito feliz em poder ajudar você
nesta fase de muito estudo e trabalho. Conte comigo!

Alan de Oliveira Santana


Sou Mestre em Sistemas da Computação pela Universidade
Federal do Rio Grande do Norte (2017). Possuo graduação em Ciência
da Computação pela Universidade do Estado do Rio Grande do Norte,
Natal, RN (2016). Tenho experiência na área de Ciência da Computação,
com ênfase em Ciência da Computação, atuando, principalmente,
nos seguintes temas: Tutores virtuais, Chatbots e Jogos educativos.
Apaixonado pelo que faço, fui convidado pela Editora Telesapiens a
integrar seu elenco de autores independentes. Estou muito feliz em poder
ajudar você nesta fase de muito estudo e trabalho. Conte comigo!
ICONOGRÁFICOS
Olá. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez
que:

OBJETIVO: DEFINIÇÃO:
para o início do houver necessidade
desenvolvimento de de se apresentar um
uma nova compe- novo conceito;
tência;

NOTA: IMPORTANTE:
quando forem as observações
necessários obser- escritas tiveram que
vações ou comple- ser priorizadas para
mentações para o você;
seu conhecimento;
EXPLICANDO VOCÊ SABIA?
MELHOR: curiosidades e
algo precisa ser indagações lúdicas
melhor explicado ou sobre o tema em
detalhado; estudo, se forem
necessárias;
SAIBA MAIS: REFLITA:
textos, referências se houver a neces-
bibliográficas e links sidade de chamar a
para aprofundamen- atenção sobre algo
to do seu conheci- a ser refletido ou dis-
mento; cutido sobre;
ACESSE: RESUMINDO:
se for preciso aces- quando for preciso
sar um ou mais sites se fazer um resumo
para fazer download, acumulativo das últi-
assistir vídeos, ler mas abordagens;
textos, ouvir podcast;
ATIVIDADES: TESTANDO:
quando alguma quando o desen-
atividade de au- volvimento de uma
toaprendizagem for competência for
aplicada; concluído e questões
forem explicadas;
SUMÁRIO
Sistema de Numeração Binário e Conversão de Base................................10
Computadores Trabalhando com a Informação.......................................................10
Sistema Binário.................................................................................................................................. 12
Conversão de Números Binários em Decimais...................................... 13
Conversão de Sistema Decimal para Binário........................................... 17
Sistema de Numeração Hexadecimal e Conversão de Base...................21
O Sistema de Numeração Hexadecimal......................................................................... 21
Conversão de Números Hexadecimais em outros Sistemas
Numéricos..........................................................................................................................23
Conversão entre Hexadecimal e Binário..................................24
Conversão entre Hexadecimal e Decimal...............................26
Trabalhando com Transformação de Dígitos no Sistema Octal..28
Conversão entre Decimais e Octais................................................................28
Conversão de Octal para Binário.......................................................................29
Códigos BCD, Gray e ASCII......................................................................................31
Códigos de Caracteres................................................................................................................. 31
Sistema BCD........................................................................................................................................34
BDC 8421.............................................................................................................................35
Código Gray..........................................................................................................................................37
ASCII.......................................................................................................................................................... 40
Pontos Flutuantes...................................................................................................... 43
Bit de Ponto Flutuante..................................................................................................................43
Conhecimento Preliminares.....................................................................................................45
Notação de Ponto Fixo.............................................................................................45
Notação em Excesso:................................................................................................45
Princípio de Ponto Flutuante.................................................................................................. 46
Padrão de Ponto Flutuante IEEE 754.............................................................. 51
Sistemas Digitais 7

02
UNIDADE
8 Sistemas Digitais

INTRODUÇÃO
Ao longo desta unidade, serão estudados, de forma mais detalhada,
os sistemas numéricos mais importantes para o contexto dos sistemas
digitais. Para isso, serão analisadas todas as formas com as quais é possível
se estabelecer os processos de conversão entre um sistema e outro, de
forma que a informação possa ser codificada das mais diferentes formas
disponíveis. Serão estudados também como se comportam os números
fracionários em sistemas digitais. Entendeu? Ao longo desta unidade
letiva, você vai mergulhar neste universo!
Sistemas Digitais 9

OBJETIVOS
Olá. Seja muito bem-vindo à Unidade 2 - CÓDIGOS E SISTEMAS
DE NUMERAÇÃO. Nosso objetivo é auxiliar você no desenvolvimento
das seguintes competências profissionais até o término desta etapa de
estudos:

1. Entender a construção e aplicação do sistema de numeração


binário, sua importância para a computação, a forma de contagem
numérica e os métodos de conversão para outras bases.

2. Compreender o sistema de numeração hexadecimal, suas


vantagens em relação aos sistemas decimais, octal e binário, além
de sua representação, contagem e conversão para outras bases
de numeração.

3. Identificar as principais tabelas de codificação e representação


de dados numéricos computacionais, especialmente os códigos
BCD, Gray e ASCII, seus usos e aplicabilidades.

4. Entender como se comporta o bit de ponto flutuante em um


número binário representado na memória de um dispositivo
computacional.
10 Sistemas Digitais

Sistema de Numeração Binário e


Conversão de Base

OBJETIVO:

Ao término deste capítulo, você será capaz de entender a


importância do sistema binário para os sistemas digitais,
qual a sua aplicabilidade, a forma de contagem numérica
e como funcionam os métodos de conversão para
outras bases. Isso será fundamental para o exercício de
sua profissão. Os computadores representam dados e
informações por meio do uso de dois estados possíveis,
o que torna o sistema binário uma ferramenta bastante
adequada para essa aplicação. E então, motivado para
desenvolver esta competência? Vamos lá, avante!.

Computadores Trabalhando com a


Informação
Como já discutido na unidade anterior, os computadores, em geral,
consistem em dispositivos lógicos que trabalham com a informação em
dois estados possíveis: o estado alto e o estado baixo. Para tanto, os
números binários consistem no formato numérico que melhor se adequa.
Isso acontece devido ao fato de que computadores são dispositivos que
trabalham com a informação por meio de operações aritméticas e lógicas
puramente, com os números de precisão fixa e finita, e, como o sistema
binário oferece um formato que utiliza apenas dois símbolos, o 0 e o 1, o
seu uso se torna precisamente apropriado. O uso do binário é mais fácil de
ser representado por circuitos eletrônicos, tendo em vista que os símbolos
correspondem perfeitamente às condições de presença ou não de tensão
no circuito, ou seja, informando, correspondentemente, se a chave está
aberta (o que corresponderia à interrupção da passagem de corrente
e assim ao estado 0) ou fechada (o que corresponderia à passagem de
corrente no circuito e, assim, ao estado 1).
Sistemas Digitais 11

Os computadores são dispositivos que trabalham com uma memória


limitada disponível para armazenamento e trabalho com informações,
ou seja, o espaço disponível nas memórias dos computadores é uma
grandeza finita. Esse valor de memória é, em geral, definido durante o
projeto do equipamento; dessa forma, tem-se que essa condição limite
ocasiona no fato de que só é possível trabalhar em um computador com
valores que podem ser representados, também, em um número de dígitos
fixos. Daí vem a ideia e a denominação dos valores de precisão finita.

Nesse contexto, tem-se que os números binários são uma solução


eficiente e que se encaixa perfeitamente nas condições limitantes
provenientes da estrutura dos computadores. Com eles, é possível
estabelecer facilmente operações aritméticas de adição, subtração,
multiplicação e divisão com valores, em diversas condições, ou seja,
usando valores considerados muito grandes, valores negativos e até
valores não inteiros e decimais.

Assim, caso fosse adotado o sistema decimal para uso no sistema


dos computadores, quando ocorressem, por exemplo, operações
aritméticas cuja resolução resultasse em um número não inteiro (exemplo:
7/2=3,5), o sistema entenderia que houve algum erro. Sendo assim,
Um dispositivo de cálculo que dá a resposta errada,
embora esteja em perfeitas condições de funcionamento
pode parecer estranho de início, mas o erro é uma
consequência lógica de sua natureza finita. (TANENBAUM,
2013, p. 526)

Esse tipo de situação não acontece quando se trabalha com


números binários, já que esse tipo de operação é rapidamente resolvida e
seu resultado é dado, para o computador, por meio de um número fixo e
preciso. Dessa maneira, o uso do sistema de numeração binária possibilita
que os computadores cumpram com seu papel primordial de serem
potentes calculadoras matemáticas.
12 Sistemas Digitais

SAIBA MAIS:
Os microprocessadores apresentam códigos de operação
definidos como múltiplos de 2, 8 e 16, tendo em vista que
fazem uso de arquiteturas com registradores com 8, 16, 32,
64 ou 128 bits (mas existem também equipamentos que
possuem tamanhos diferentes desses apresentados).

Em termos gerais, a álgebra booleana é o mecanismo utilizado


para a simplificação e para o cálculo com esse tipo de formato numérico
nos computadores. A eletrônica digital, computação e programação se
fundamentam no uso do sistema binário e da lógica de Boolean para
representar os circuitos eletrônicos digitais e todas as suas operações.
Assim, tem-se que os softwares computacionais são codificados no
formato binário e armazenados em memórias e mídias com essa
finalidade. Os processadores dos computadores operam por meio de
instruções que compreendem o código da máquina e são caracterizadas
por sequenciamentos de bits, cuja quantidade é limitada pelo número de
bits identificado no registrador principal da CPU.

Sistema Binário
O sistema binário, como já introduzido na unidade anterior, é
baseado na base 2; assim, os números nesse sistema são construídos a
partir dos dois dígitos binários, a saber: 1 e 0.

Lembre-se sempre que um bit corresponde a cada dígito binário


que é apresentado.

Os algarismos binários correspondem a qualquer conjunto dual, por


exemplo: 0=não e 1=sim; 0=falso e 1=verdadeiro; 0=desligado e 1=ligado;
0=negativo e 1=positivo, entre outros.

Já foi introduzido também que, nos circuitos lógicos, os dígitos


binários caracterizam níveis de tensão baixo e alto ou estados de
saturação e corte de transistores; dessa forma, outra dualidade que pode
ser utilizada para representar os níveis de tensão é a designação L e
H, que significam low e high levels, ou níveis de tensão baixos e altos,
respectivamente.
Sistemas Digitais 13

Conversão de Números Binários em Decimais


Tem-se, pois, que, para representar a quantidade 0 em binário,
utiliza-se o algarismos 0 e, para representar a quantidade 1 em binário,
utiliza-se o algarismo binário 1. Porém, caso seja necessário representar
outras quantidades em binários, como se deve proceder se só existem
dois dígitos disponíveis em binário?

Em decimal, quando é necessário representar quantidades maiores


que o conjunto base (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), por exemplo, a quantidade
noventa e dois, é feita a associação de elementos do conjunto base, sendo
que suas posições assumidas constituem o comportamento ponderado
de acordo com a posição que ocupa.

Observe as resoluções a seguir:

A quantidade noventa e dois, em decimal, é dada pela representação


numérica do decimal 92, em que o nove representa a existência de 9
grupos de uma dezena e o dois representa a existência de 2 grupos de
unidades, ou seja:

Observe agora a quantidade 752. Nesse caso, o 7 ocupa a casa das


centenas, o 5 a casa das dezenas e o 2 a casa das unidades, o que resulta
no fato de que há 7 grupos de centenas, 5 grupos de dezenas e 2 grupos
de unidades, ou seja:

Partindo desse pensamento, no sistema binário, é possível


representar todas as quantidades necessárias por meio do adequado
manuseio do conjunto base desse sistema.
14 Sistemas Digitais

A regra básica para a constituição de um número se dá por meio


do somatório de cada algarismo equivalente multiplicado pela base que,
por sua vez, deve ser elevada por um valor de índice que é identificado de
acordo com a posição ocupada pelo algarismo no número (nos exemplos
anteriores, esse processo foi desenvolvido para números no sistema
decimal, dessa maneira, utilizou a base desse sistema: 10).

O mesmo pode ser desenvolvido para os números binários. Nesse


caso, implementa-se o somatório de cada algarismo equivalente, cada
algarismo é multiplicado pela base 2, que deve estar elevada pelo valor
de índice da posição ocupada pelo algarismo.

Observe as resoluções a seguir:

Imagine que se queira identificar o valor em decimal correspondente


aos seguintes valores: 101, 1111 e 10101.

•• Para 101:

1 0 1
Ocupa posição Ocupa posição Ocupa posição
2 1 0

Agora que já sabe a posição de cada elemento e já foi identificado o


índice respectivo de cada base, basta montar a equação. Ou seja, tem-se:

•• Para 1111:

1 1 1 1
Ocupa posição Ocupa posição Ocupa posição Ocupa posição
3 2 1 0
Sistemas Digitais 15

•• Para 10101:

1 0 1 0 1

Ocupa posição Ocupa posição Ocupa posição Ocupa posição Ocupa posição
4 3 2 1 0

Outra forma de fazer a conversão de binário para decimal, que


elimina a necessidade de se realizar a soma de números grandes e o
acompanhamento dos pesos das posições ocupadas pelo elemento, é o
método Double-dabble. Para a conversão por meio desse outro modelo,
deve-se seguir o passo a passo definidos a seguir:

1. Primeiro, deve-se anotar o 1 que estiver localizado mais à esquerda


no número binário.

2. Em seguida, deve-se dobrar esse elemento e somá-lo ao bit que


estiver logo em seguida à sua direita.

3. O valor obtido deve ser anotado sob o próximo bit.

4. Os passos 2 e 3 devem ser repetidos até que o número binário seja


completamente finalizado.

Observe as resoluções a seguir:

Para o número binário 101:

•• 🡪Multiplica-se o elemento mais à esquerda por 2:

1×2=2
16 Sistemas Digitais

•• 🡪Soma o resultado obtido pelo bit adjacente:

2+0=2

•• 🡪Pega o resultado e multiplica por 2:

2×2=4

•• 🡪Soma o resultado pelo bit adjacente:

4+1=5

•• 🡪Como não há mais bits o cálculo é finalizado.

Fazendo agora para o número binário 1111:

1×2=2

2+1=3

3×2=6

6+1=7

7×2=14

14+1=15

Para o número binário 10101:

1×2=2

2+0=2

2×2=4

4+1=5

5×2=10

10+0=10

10×2=20

20+1=21
Sistemas Digitais 17

Conversão de Sistema Decimal para Binário


Assim como é possível transformar um valor que se encontra no
formato binário em um valor decimal, o caminho inverso também pode ser
implementado, ou seja, é possível também, a partir de um valor decimal
qualquer, encontrar o seu correspondente valor no sistema binário de
representação.

Em geral, existem dois caminhos possíveis para a conversão de


decimais inteiros em binários. No primeiro caminho, é feito o processo
inverso do que foi apresentado na seção anterior (o primeiro método de
transformação de binário para decimal apresentado anteriormente).

Nesse caso, representa-se o número decimal como sendo a soma


de potências de 2. Então, 0s e 1s são dispostos em posições adequadas
próximas aos seus bits correspondentes como mostrado a seguir:

No caminho demonstrado anteriormente, a ideia principal do


mecanismo se baseia na segmentação do valor em um somatório no qual
os elementos da soma são potências de 2, por exemplo: . As potências
que forem possíveis de serem identificadas são correspondentes ao bit 1 e
as que não forem, por sua vez, são correspondentes ao bit 0.

Observe a conversão do valor a seguir:

Dessa maneira, tem-se que as conversões anteriores resultam em:

O segundo caminho para a conversão de um número decimal


em binário se baseia na divisão matemática do valor que se deseja
transformar, de maneira sucessiva, pelo número decimal dois (2), que é
18 Sistemas Digitais

a base dos números binários, além da divisão deve ser feita a escrita, de
maneira inversa, dos valores que restarem em cada divisão até que se
atinja o quociente igual a 0.

O resultado, em valor binário, é obtido, escrevendo-se o primeiro,


na posição do Least Significant Bit-LSB, bit menos significante, e o
último resultado é escrito na posição Most Significant Bit-MSB, bit mais
significante.

O fluxograma a seguir detalha como deve acontecer o método das


divisões sucessivas:
Figura 01 - Método das divisões sucessivas de conversão de decimal em binário

Os Rs produzidos
fornecem o número
Sim binário desejado, com Fim
o primeiro R como LSB
e o último R como MSB
Guarde o
Início Dividida quociente Q=0?
por 2 (Q) e o
resto (R)
Retorne o processo.
Divida o valor por 2. E
Não analise o quociente
novamente.

Fonte: Elaborado pelos autores com base em Tocci (2007).

Observe a transformação a seguir:


Sistemas Digitais 19

A mesma ideia expressa anteriormente pode ser desenvolvida por


meio de outra forma estrutural.

Observe o desenvolvimento expresso a seguir:

Uma observação importante, destacada pelo autor Tocci (2007), é a


possibilidade de identificar a faixa de contagem dos números decimais no
formato em bits. Segundo o autor:
Usando N bits, podem-se representar números decimais
na faixa de 0 a , em um total de números diferentes.
(TOCCI, 2007, p.42)

Em outras palavras, tem-se que é possível realizar a contagem


de números diferentes em decimal (de 0 a ). Por exemplo, se for
utilizado um valor de 5 bits, N=5, pode-se contar de , o que
corresponde a 0a , e há números diferentes.
20 Sistemas Digitais

RESUMINDO:

E então, gostou do que lhe mostramos? Aprendeu mesmo


tudinho? Agora, só para termos certeza de que você
realmente entendeu o tema de estudo deste capítulo,
vamos resumir tudo o que vimos. Você deve ter aprendido
que operações aritméticas e lógicas são o modo como os
computadores trabalham com a informação. Os números
são trabalhados de forma precisa, fixa e finita e como o
sistema binário oferece um formato que utiliza apenas
dois símbolos, o 0 e o 1, o seu uso se torna precisamente
apropriado. Os números binários se caracterizam por serem
de base 2, assim, 0 e 1 são o conjunto básico desse sistema
numérico. É possível, dessa forma, representar símbolos
de números de outros sistemas numéricos em sistema de
binários. A conversão de binário para decimais pode ser
feita de duas maneiras, por meio do método double-dabble
ou do método de conversão em bases, considerando as
posições dos bits é possível também fazer a conversão
de decimal para binário por dois métodos, por meio da
representação dos decimais em soma de potencial de 2 ou
por meio do método das divisões sucessivas.
Sistemas Digitais 21

Sistema de Numeração Hexadecimal e


Conversão de Base

OBJETIVO:

Ao término deste capítulo, você será capaz de entender o


sistema de numeração hexadecimal, suas vantagens em
relação aos sistemas decimal, octal e binário, além de sua
representação, contagem e conversão para outras bases de
numeração. Isso será fundamental para o exercício de sua
profissão. O sistema numérico hexadecimal compreende
o sistema que é vastamente utilizado na programação de
microprocessadores, esse fato o torna um sistema também
indispensável. E então, Motivado para desenvolver esta
competência? Vamos lá, avante!.

O Sistema de Numeração Hexadecimal


O sistema de numeração hexadecimal, como já estudado em
seções anteriores, compreende, em um sistema de base dezesseis (16),
o qual é representado por dez elementos numéricos provenientes do
sistema decimal e por seis letras do alfabeto, no caso, as primeiras, ou
seja, é um conjunto formado por:

IMPORTANTE:

Para  indicar que um número está escrito usando o sistema


hexadecimal, e se conseguir, dessa forma, diferenciá-lo das
representações em outras bases,  ele deve ser colocado
entre parênteses e indicar a base como um subscrito (nesse
caso 16). Quando a base é omitida, significa que o número é
expresso na base dez. Por exemplo: o valor 102, nesse formato,
representa um número decimal, mas, se for escrito dessa
forma: (102)16 passa a representar um número hexadecimal (a
leitura desse valor é: um zero dois na base dezesseis).
22 Sistemas Digitais

Considera-se o sistema hexadecimal como sendo de grande


relevância para o segmento das Ciências Computacionais e Digitais. Isso
porque este se caracteriza como muito vantajoso, o que se dá devido ao
fato de que cada dígito compreendido no sistema hexadecimal equivale
à quatro dígitos no sistema binário. Assim, tem-se que dois dígitos
hexadecimais compreendem uma unidade básica de armazenamento
de informações, ou seja: 8 bits ou 1 byte (no caso dos binários, seriam 4
dígitos por unidade de armazenamento).

EXEMPLO

Para representar o último caractere do sistema hexadecimal, utiliza-


se apenas o dígito F. Se, porém, o mesmo elemento for representado em
números binários tem-se 1111, ou seja, (F)16 = (1111)2.
Este sistema é muito utilizado na área dos
microprocessadores e também no mapeamento de
memórias em sistemas digitais, tratando-se de um sistema
numérico muito importante, sendo aplicado em projetos
de software e hardware. (CAPUANO, 1981, p. 21)

Assim, tem-se que o sistema de numeração hexadecimal é capaz


de simplificar os valores dos dados e das instruções de memória, o que
permite que os dispositivos projetados com números hexadecimais sejam
capazes de reduzir o tamanho das séries de uns e zeros, potencializando o
transporte de dados e informações, o qual se torna mais rápido e eficiente.

O sistema de numeração hexadecimal pode ser usado para


representar números binários de forma mais legível pode isso é
frequentemente utilizado ao trabalhar com computadores.  O fato geral
é que computador realiza cálculos em números binários, mas há vários
casos em que o resultado do computador em números binários é expresso
em números hexadecimais para facilitar a leitura pelo sistema.

Com base no exposto, tem-se a justificativa do porquê


da representação hexadecimal de números ser adotada nas tecnologias
da informação, o fato de ocupar menor quantidade de espaço, por utilizar
menor quantidade de símbolos e dígitos em geral mesmo trabalhando
com dados e valores numéricos grandes, permite que esses elementos
Sistemas Digitais 23

ocupem menos memória em termos de bytes, assim são muitos aplicados


para o registro de valores numéricos em registros de memória.
O sistema de numeração hexadecimal tem dezesseis
caracteres; ele é usado principalmente como uma
forma compacta de apresentar ou escrever números
binários, e é muito fácil realizar conversões entre binário
e hexadecimal. Números binários longos são difíceis de
serem lidos e escritos porque é fácil omitir ou trocar um
bit. Como os computadores entendem apenas 1s e 0s, é
necessário usar esses dígitos quando se programa em
“linguagem de máquina”. Imagine escrever uma instrução
de dezesseis bits para um sistema microprocessado em 1s
e 0s. É muito mais eficiente usar hexadecimal ou octal. O
sistema hexadecimal é bastante usado em aplicações de
computador e microprocessador. (TOCCI, 2007, p. 91)

Algumas vantagens do sistema hexadecimal em relação aos demais:

•• Facilidade de conversão de dados dos demais sistemas para o


hexadecimal.

•• Simplifica valores de dados e instruções de memória.

•• Notação mais compacta que a binária, o que tem impacto direto


no espaço de memória ocupado no sistema.

•• Cada dígito hexadecimal ocupa meio byte.

•• O sistema hexadecimal aceita a conversão de textos da escrita


alfabética por meio da notação ASCII.

Conversão de Números Hexadecimais em outros


Sistemas Numéricos
Ao longo desse tópico, serão abordadas as conversões entre o
sistema numérico hexadecimal e os sistemas binário, decimal e octal.

Antes de mais nada, é válido observar que o sistema de numeração


hexadecimal, cuja base é 16, apresenta pesos associados às posições de cada
dígito. Os pesos são identificados como potências de 16, observe a seguir:

164 163 162 161 160 , 16-1 16-2 16-3 16-4


24 Sistemas Digitais

Observe que, nesse caso, utiliza-se uma vírgula, definida como


vírgula hexadecimal.

O importante, a respeito do sistema hexadecimal, é compreender


as quantidades que cada símbolo representa; sabendo disso, a forma
com que são apresentados os símbolos hexadecimais se torna uma tarefa
mais simples.

A contagem do sistema hexadecimal é simples. Como já visualizado


após o 9, utilizam-se as 5 primeiras letras do alfabeto e após o F a contagem
se inicia uma nova contagem como o mostrado a seguir (TOCCI, 2007):

10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 2ª, 2B, 2C, 2D, 2E, 2F, 30, 31...

Assim, cada dígito pode ser incrementado de 0 a F, com N dígitos


hexadecimais, pode-se contar de 0 a decimal, num total de
valores distintos. Fazendo uso de dois dígitos hexadecimais é possível
contar até o valor , que é igual a 255 em decimal. Valores acima desse
demandam o uso de três dígitos e assim sucessivamente.

Conversão entre Hexadecimal e Binário


Para se desenvolver a conversão de um número hexadecimal para
um equivalente binário utiliza-se uma técnica direta e fácil de conversão.
Substituem-se os símbolos hexadecimais diretamente pelos quatro bits
equivalentes.

Observe a seguir as conversões:

•• Para o hexadecimal 1ED16

O processo de conversão do hexadecimal 1ED16 será feito por


dígito, assim, tem-se que:

•• O algarismo 1 em binário é dado por 012. O algarismo E equivale à


1410, em decimal, o que resulta em

•• E, por fim, o algarismo D equivale à 1310, em decimal, o que resulta


em:
Sistemas Digitais 25

Fazendo, ao final, a união de todos os elementos, que foram obtidos


separadamente, o resultado em binário da conversão é:

1ED16=1111011012

•• Para o hexadecimal CF8E16

O processo de conversão do hexadecimal CF8E16 será feito por


dígito, assim, tem-se que:

•• O algarismo C equivale à 1210, em decimal, o que resulta em:

•• O algarismo F equivale à 1510, em decimal, o que resulta em

•• O algarismo 8 em binário é 10002.

•• O algarismo E equivale à 1410, em decimal, o que resulta em

Fazendo, então, a união de todos os elementos, que foram obtidos


separadamente, o resultado, em binário, da conversão é:

CF8E16=11001111100011102

Para o processo inverso, ou seja, de transformação de binário para


hexadecimal, faz uso de um processo que é implementado diretamente,
ou seja, basta separar o número binário em grupos formados por quatro
bits iniciando do bit mais à direita e, em seguida, substituindo cada grupo
de quatro bits pelo símbolo hexadecimal correspondente.

ACESSE:

Para visualizar o processo de conversão, clique aqui.


26 Sistemas Digitais

•• Para o binário 1100101001010111:

•• Inicialmente, divide-se o binário de quatro em quatro bits e se


descobre o valor decimal de cada byte:

•• 1100 1010 0101 0111

•• Agora, é feita união dos algarismos encontrados, o que resulta em:

11001010010101112= CA5716

Conversão entre Hexadecimal e Decimal


Para se desenvolver a conversão de um número hexadecimal
para um equivalente decimal, é um processo que se dá pela conversão
do número hexadecimal em binário e, em seguida, de binário para
hexadecimal.

•• Para o hexadecimal A8516:

Inicialmente, será convertido cada elemento para o seu equivalente


em binário:

Após isso, será feito o cálculo para definir o valor em hexadecimal:

Outra maneira de fazer a conversão de hexadecimal para decimal é


multiplicando o valor decimal de cada dígito hexadecimal pelo respectivo
peso e, a partir de então, desenvolver o somatório desses produtos, isto é

•• Para o hexadecimal E516:


Sistemas Digitais 27

Fazendo agora o cálculo inverso, ou seja, de conversão de decimal


para hexadecimal, tem-se que é possível obter o valor final por meio de
um processo baseado em divisões sucessivas do valor decimal pela base
do sistema hexadecimal, ou seja, por 16. Essa divisão produz o número
hexadecimal correspondente que é constituído por meio dos restos das
divisões.

Tem-se, nesse caso, que a partir da primeira divisão feita gera-


se o dígito caracterizado como menos significativo, o LSD. A partir daí,
todos os restos produzidos nas divisões compõem um dígito do valor em
hexadecimal.

Observe a transformação a seguir, perceba que, quando o quociente


é zero, as divisões são interrompidas:

A mesma ideia expressa anteriormente pode ser desenvolvida por


meio de outra forma estrutural.
28 Sistemas Digitais

Observe o desenvolvimento expresso a seguir do número 388210:

Assim: 388210 = F2A16

Trabalhando com Transformação de Dígitos no


Sistema Octal
Mesmo não estando em tanto uso como os valores em sistema
hexadecimal, é interessante elencar as conversões também dos sistemas
decimal, binário e hexadecimal em relação ao sistema octal.

Em geral, o sistema octal é composto por oito dígitos (0, 1, 2, 3, 4, 5,


6, 7). A contagem para os valores acima de 7 é iniciada por meio do uso
de uma nova coluna, ou seja:

0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21...

Assim, os dígitos 8 e 9 não são utilizados na contagem em octais. A


distinção dos números octais, em relação aos decimais, é feita por meio
do uso do subscrito 8 indicado no número octal.

Conversão entre Decimais e Octais


Para se converter um número que está no sistema octal para
o sistema decimal, é feito por meio do cálculo da soma relativa aos
produtos de cada multiplicação de cada dígito por seu peso. No sistema
Sistemas Digitais 29

octal, a base é 8; assim, cada posição de dígito corresponde às potências


crescente de 8.

Exemplo:

O procedimento inverso, de conversão de decimal para octal,


também pode ser implementado. De forma similar ao método que
é utilizado para a conversão de números decimais para binários ou
hexadecimais, pode-se fazer uso das divisões sucessivas para a conversão
de decimais para octal.

Observe a transformação a seguir, perceba que, quando o quociente


é zero, as divisões são interrompidas:

Conversão de Octal para Binário


Os dígitos octais podem ser expressos por meio de 3 bits, o que
ocasiona na possibilidade de transformação de um número octal em
binários.

Assim, para a conversão de um octal em binário basta substituir


cada dígito octal por três dígitos em binários.

Observe a seguir:
30 Sistemas Digitais

Para suceder a conversão de um dígito em binário para o sistema


octal, é desenvolvido o mecanismo inverso ao exibido anteriormente.

Inicialmente, se selecionam os 3 bits localizados mais à direita, por


meio do qual se encontra o primeiro dígito binário e, assim, sucessivamente,
até finalizar todo o grupo de bits.

Observe a seguir:

RESUMINDO:

E então, gostou do que lhe mostramos? Aprendeu mesmo


tudinho? Agora, só para termos certeza de que você
realmente entendeu o tema de estudo deste capítulo,
vamos resumir tudo o que vimos. Você deve ter aprendido
que o sistema numérico hexadecimal compreende o
sistema que é vastamente utilizado na programação de
microprocessadores, tendo em vista que o sistema de
numeração hexadecimal pode ser usado para representar
números binários de forma mais legível. Os números nesse
sistema ocupam menor quantidade de espaço, utilizam
menor quantidade de símbolos e dígitos, permitindo, assim,
que esses elementos ocupem menos memória em termos
de bytes. O sistema de numeração hexadecimal possui
base 16 e apresenta pesos associados às posições de cada
dígito. É possível fazer a conversão entre hexadecimais
e binários e decimais, assim como o inverso. O sistema
octal também pode ser transformado em outros sistemas.
Esse sistema apresenta base 8 e também apresenta
pesos associados às posições de cada dígito. Os octais,
no entanto, não estão em tanto uso como os valores em
sistema hexadecimal.
Sistemas Digitais 31

Códigos BCD, Gray e ASCII

OBJETIVO:

Ao término deste capítulo, você será capaz de entender


e identificar as principais tabelas de codificação e
representação de dados numéricos computacionais,
especialmente os códigos BCD, Gray e ASCII, seus usos e
aplicabilidades. Isso será fundamental para o exercício de
sua profissão. E então, motivado para desenvolver essa
competência? Vamos lá, avante!.

Códigos de Caracteres
A eletrônica digital e os sistemas digitais operam internamente, ao
longo de seus circuitos, fazendo uso do sistema de numeração binário.
Como se sabe, as informações que chegam do mundo real para os
circuitos digitais se apresentam em um primeiro momento sob formatos
de sinais analógicos. Os sinais provenientes das informações do mundo
externo são convertidas para os formatos com os quais os sistemas
digitais operam.

Todo e qualquer número representado no sistema decimal pode


ser convertido e equivalentemente ser representado por um elemento
binário correspondente, assim os 0s e 1s do sistema binário possuem
a capacidade de corresponder e representar de forma codificada os
elementos decimais. Nesse contexto, pode-se definir o termo codificação
em binário puro, que é um termo utilizado para identificar quando um
elemento do sistema decimal é reproduzido por seu número binário
correspondente.

Como todos os sinais do mundo real são analógicos, a todo o


momento, nos sistemas digitais são implementados processos de
conversão de base para que essas informações possam ser operadas
internamente nesses dispositivos, o que leva ao fato de serem bastante
frequentes as conversões entre decimais e binários.
32 Sistemas Digitais

Tem-se, no entanto, que os processos de conversão, como estudado


anteriormente, por vezes, podem se apresentar como procedimentos
exaustivos, longos e complicados, dependendo do tipo e tamanho da
informação que é trabalhada. Isso, por sua vez, acarreta no fato de que,
para números grandes, as conversões entre binários e decimais como
visualizado se dão por longos e complexos processos.

É justamente nesse ponto que se encaixa a importância dos


processos de codificação por meio de códigos de caracteres.

Os computadores digitais são organizados por meio de um sistema


geral em que processadores, memória e dispositivos de entrada e saída
de dados são interconectados. Os processadores exercem a função de
buscar sempre novas instruções na memória do sistema e uma por vez as
decodifica e executa. As memórias, por sua vez, são os compartimentos
que armazenam a informação, podem ser primárias, as que contêm os
programas em execução, de tempo de acesso curto e independente de
endereço, ou secundárias, que dependem da localização da informação.
Os dispositivos de entrada e saída de informações, nesse sentido, são
componentes empregados para a transferência das informações para
o computador, a partir do mundo externo, e do computador para fora.
Esses componentes são conectados aos dispositivos de processamento
e memória por meio de um ou mais barramentos, conjuntos de linhas de
comunicação que permitem a interligação entre dispositivos.

Os dispositivos de entrada e saída são interligados à placa-mãe


dos computadores. Cada dispositivo de E/S é formado por uma parte
eletrônica, o controlador, e outra parte composta pelo drive de disco.
Sistemas Digitais 33

Figura 02 - Estrutura lógica de um computador simples

Fonte: Tanenbaum (2013).

Os controladores controlam e manipulam pelo barramento os


dispositivos de entrada e saída, dividindo o fluxo de bits em unidade e
escrevendo-as na memória. Tem-se, nesse sentido, que, para cada
computador, se associa um conjunto específico de caracteres que por
ele é adotado.

De acordo com Tanenbaum (2013), um conjunto de caracteres é


considerado mínimo quando é formado por vinte e seis letras maiúsculas,
vinte e seis letras minúsculas, os algarismos decimais de 0 a 9, além de
um conjunto de caracteres especiais, como espaço, vírgula, entre outros.

A transferência de caracteres para o sistema de um computador se


dá pelo mecanismo de atribuição de valores ou números associados a
cada um desses caracteres.

EXEMPLO

Imagine que os símbolos a seguir sejam associados aos números


apresentados (lembre-se que são exemplos hipotéticos apenas para
ilustrar a ideia):

A=5 B=6

a=1 -=8

b=4 ;=7
34 Sistemas Digitais

O mecanismo de mapeamento dessas informações por meio de


números inteiros é, dessa forma, identificado como código de caracteres.

A respeito dos códigos de caracteres, uma importante informação


consiste no fato de que se faz indispensável que computadores que se
comunicam estejam utilizando o mesmo código, tendo em vista que
assim eles conseguiram estabelecer uma comunicação, caso não utilizem
o mesmo código os computadores não conseguiram se entender.

Pensando justamente na comunicação entre computadores, foram


desenvolvidos códigos padrão para serem utilizados e aplicados aos
sistemas computacionais.

Sistema BCD
O código ou sistema BCD (Binary Coded Decimal), ou codificação do
sistema decimal em binário, consiste em um formato empregado, como
o próprio nome sugere, na codificação de números decimais em binários.

No código BCD, cada um dos dígitos expressos em decimal é


codificado através de um processo de combinação entre 4 bits binários.
Essa codificação é feita dígito a dígito.

De acordo com Tocci (2007), se cada dígito de um número decimal


for simbolizado por um binário correspondente, será obtido um código
identificado como decimal codificado em binário (BCD). Os dígitos
decimais podem ter até, no máximo, o valor 9; portanto, são necessários 4
bits para codificar um dígito em binário.

EXEMPLO

Observe o decimal 8054310:


Sistemas Digitais 35

Assim, em BCD os dígitos decimais correspondem à 1000 000 0101


0100 0011.

Cada dígito decimal é, pois, convertido em um correspondente


binário puro com uso, sempre, de 4 bits por dígito.

Assim, uma característica geral desse sistema é que cada dígito


decimal em BCD é representado sempre por um número binário de 4 bits,
os quais são encontrados entre 0000 e 1001, ou seja, em BCD, só são
aproveitados dez grupos, não são utilizados os números 1010, 1011, 1100,
1101, 1110, e 1111.

IMPORTANTE:

Se os números 1010, 1011, 1100, 1101, 1110, e 1111 forem


utilizados em um computador cujo código em uso é o
BCD, será, provavelmente, emitida uma mensagem de
erro, tendo em vista que são considerados, nesse caso, bits
proibidos.

O sistema BCD não representa outro tipo de sistema de numeração.


Dessa forma, esse sistema é conhecido como decimal, em que cada
um de seus dígitos é codificado em seu equivalente binário. Ademais, é
importante observar também que esse sistema não consiste como sendo
a mesma coisa que um número binário puro, tendo em vista que esse
último é alcançado por meio de um número decimal completo, descrito
em binário. No código BCD, por sua vez, cada um dos dígitos decimais são
convertidos, de forma individual, em um binário. O código BCD demanda
mais bits para representar um decimal em comparação a um binário puro.
A vantagem desse sistema é a clareza e simplicidade de conversão.

BDC 8421
Conforme já foi introduzido na unidade anterior, o código BCD 8421
é o mais utilizado. O termo 8421 se refere ao significado dos valores dos
36 Sistemas Digitais

algarismos em um número binário, ou seja, descrevem, respectivamente:


23, 22, 21, 20.

A tabela a seguir descreve a formação do código 8421.


Tabela 01 - formação do código 8421

DECIMAL BCD 8421


A B C D

0 0 0 0 0

1 0 0 0 1

2 0 0 1 0

3 0 0 1 1

4 0 1 0 0

5 0 1 0 1

6 0 1 1 0

7 0 1 1 1

8 1 0 0 0

9 1 0 0 1
Fonte: Idoeta (1993).

Além do BCD 842, existem outros códigos BCD de 4 bits, como


o BCD 7421, o BCD 5211 e o BCD 2421. Nesses casos, o processo de
conversão para o sistema decimal se desenvolve de forma análoga ao
que já foi visualizado até aqui no sistema BCD 8421.
Sistemas Digitais 37

Nessas situações, as formações dos códigos se dão como


mostrados na tabela a seguir:
Tabela 02 - Formação dos códigos 8421, 7421, 5211 e 2421

DECIMAL BCD 7421 BCD 5211 BCD 2421


0 0000 0000 0000
1 0001 0001 0001
2 0010 0011 0010
3 0011 0101 0011
4 0100 0111 0100
5 0101 1000 1011
6 0110 1001 1100
7 1000 1011 1101
8 1001 1101 1110
9 1010 1111 1111
Fonte: Idoeta (1993).

Código Gray
De acordo com Tocci (2007), os sistemas digitais desenvolvem
operações caracterizadas como sendo de altas velocidades e respondem
às variações que se processam nas entradas digitais.

Quando uma variação é detectada nas entradas digitais, a reação do


sistema é facilmente desenvolvida, no entanto, quando se trabalha com
uma grande variedade de condições de entrada se desenvolvendo, ao
mesmo tempo, o comportamento do sistema não responde com a mesma
simplicidade. Analisando-se os bits em uma sequência de contagem
binária, pode-se observar que, naturalmente, muitos bits podem mudar
de estado ao mesmo tempo. Assim, podem existir situações em que há
equivocada interpretação das entradas, acarretando em consequente
reações incorretas.
38 Sistemas Digitais

Então, foi visando minimizar os riscos de um circuito digital


desenvolver interpretações equivocadas de dados de entrada que
mudam a todo tempo que o código Gray foi desenvolvido.

A principal particularidade do código Gray se relaciona à mudança


de apenas dois bits entre dois números sucessivos em uma sequência.

Tem-se que a formação do código Gray é dada na tabela a seguir:


Tabela 03 - Formação do código Gray

DECIMAL GRAY
A B C D
0 0 0 0 0
1 0 0 0 1
2 0 0 1 1
3 0 0 1 0
4 0 1 0 0
5 0 1 0 1
6 0 1 1 1
7 0 1 1 0
8 1 1 0 0
9 1 1 0 1
10 1 1 1 1
11 1 1 1 0
12 1 0 1 0
13 1 0 1 1
14 1 0 0 1
15 1 0 0 0
Fonte: Tocci (2007).

A conversão de binário, para o código Gray, se inicia pelo bit


mais significativo (MSB), tornando-se o Gray mais significativo (MSB).
Posteriormente, o binário MSB deve ser comparado com o próximo bit
binário; caso sejam iguais, o Gray seguinte é igual a 0, e se forem diferentes
o Gray seguinte é igual a 1.
Sistemas Digitais 39

Observe a figura a seguir. Note que, por meio da ilustração, é


possível analisar o processo de conversão entre binário e Gray.
Figura 03 - Conversão de (a) binário em Gray e (b) Gray em binário

Fonte: Tocci (2007).

Observe, na tabela a seguir, as transições entre os valores binários


de três bits e do código Gray.
Tabela 04 - Equivalentes entre binário de 3 bits e Gray

B2 B1 B0 G2 G1 G0
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 1 1
0 1 1 0 1 0
1 0 0 1 1 0
1 0 1 1 1 1
1 1 0 1 0 1
1 1 1 1 0 0
Fonte: Tocci (2007).

O código Gray é mais comumente utilizado em codificador de


eixo em quadradura. Esse codificador compreende um dispositivo que
produz uma sequência com dois bits de saída. Por meio de uma rotação
no sentido horário e anti-horário, são produzidas sequências de bits. A
conversão em binário dessas sequências depende do sentido de rotação
do dispositivo.
40 Sistemas Digitais

Figura 04 - Codificador de eixo

Fonte: Floyd (2007).

De acordo com Tocci (2007):


A sensibilidade ou número de graus de rotação
representados por cada estado da sequência Gray
varia entre os muitos modelos de codificadores de
eixo disponíveis. Uma característica importante de um
codificador de eixo é que a sequência dos estados pode
ser usada para determinar em qual direção o eixo está
girando. (TOCCI, 2007, p.51)

Esse tipo de codificador é utilizado em botões giratórios para


controle de volume, por exemplo.

ASCII
Os códigos ASCII ou Código Padrão Americano de Troca de
Informações (American Standard Code for Information Interchange)
compreende um tipo de código alfanumérico que é adotado
universalmente em computadores e equipamentos eletrônicos.
Sistemas Digitais 41

Geralmente, os teclados de computadores são desenvolvidos com


o padrão ASCII, assim, quando um usuário seleciona alguma tecla do
teclado, um comando de controle associado ou número é acionado e o
código ASCII que corresponde ao mesmo é enviado para o computador.
O teclado de um computador tem um microprocessador
dedicado que constantemente escaneia (“lê”) o circuito do
teclado para detectar quando uma tecla foi pressionada
e liberada. Uma única varredura é gerada pelo software
do computador representando aquela tecla em particular.
O código de varredura é então convertido em código alfa
numérico (ASCII) para ser usado pelo computador. (FLOYD,
2007, p.106)

O ASCII opera com 128 caracteres e símbolos que são representados


por um código de 8 bits onde o bit mais significativo é igual a 0. Ele vai,
pois, de 00 até 7F em hexadecimal.

Em ASCII, os 32 primeiros elementos são comandos não gráficos,


os quais não são impressos nem exibidos, sendo somente destinados às
operações de controle, como início de texto, nulo, escape, etc. Os demais
caracteres compreendem símbolos gráficos, como letras maiúsculas e
minúsculas, números decimais, símbolos, sinais de pontuação, etc.

ACESSE:

Para mais informações sobre o código ASCII, observe as


tabelas disponibilizadas aqui.

Em geral, o código ASCII pode ser identificado como um tipo


que é destinado à transferência de informações alfanuméricas entre os
dispositivos computacionais e os dispositivos externos, uma impressora
por exemplo. Além disso, nos computadores, o código ASCII é também
utilizado para armazenamento interno de dados digitados por um usuário.

Observe a tabela a seguir. Nela, são apresentados alguns caracteres


considerados correspondentes entre decimais, binários e hexadecimais.
42 Sistemas Digitais

Tabela 05 - Equivalentes entre ASCII, decimais, binários e hexadecimais

SÍMBOLO GRÁFICO

SÍMBOLO DECIMAL BINÁRIO HEXADECIMAL


Espaço 32 0100000 20

A 65 1000001 41

B 66 1000010 42

C 67 1000011 43

1 49 0110001 31

2 50 0110010 32
Fonte: Adaptado de Floyd (2007).

A tabela anterior só apresenta alguns caracteres, ela foi adaptada


para possibilitar a ilustração, mas, na íntegra, as tabelas da ASCII podem
ser encontradas em livros e no Google.

RESUMINDO:

E então, gostou do que lhe mostramos? Aprendeu mesmo


tudinho? Agora, só para termos certeza de que você
realmente entendeu o tema de estudo deste capítulo,
vamos resumir tudo o que vimos. Você deve ter aprendido
que todos os sinais do mundo real são analógicos e que
a todo o momento são implementados processos de
conversão de base para que essas informações possam
ser operadas internamente em dispositivos digitais. Os
processos de conversão podem, no entanto, se apresentar
como procedimentos exaustivos, longos e complicados,
dependendo do tipo e tamanho da informação que é
trabalhada. Isso, por sua vez, acarreta no fato de que
para números grandes as conversões entre binários
e decimais como visualizado se deem por longos e
complexos processos. Tem-se, nesse sentido, que para
cada computador se associa um conjunto específico de
caracteres que por ele é adotado. Existem, nesse contexto,
os códigos BCD, Gray, e ASCII, como os principais e estes
foram abordados em nosso estudo.
Sistemas Digitais 43

Pontos Flutuantes

OBJETIVO:

Ao término deste capítulo, você será capaz de entender


como se comporta o bit de ponto flutuante em um número
binário representado na memória de um dispositivo
computacional. Isso será fundamental para o exercício de
sua profissão. E então, motivado para desenvolver essa
competência? Vamos lá, avante!

Bit de Ponto Flutuante


Até agora foram abordados conceitos em que a informação digital
foi tratada como sendo composta apenas de números inteiros. Porém, na
realidade, os computadores não operam apenas com números inteiros.

Como os sistemas digitais se comportam com números fracionários?


Como os sistemas digitais se comportam quando lidam com números
muito grandes ou muito pequenos que se apresentam no formato
exponencial? Como são chamados os números que se apresentam assim:

Inicialmente, é importante pontuar que todos os questionamentos


feitos anteriormente são resolvidos por meio dos números de pontos
flutuantes.

DEFINIÇÃO:

Entende-se por ponto flutuante como sendo um número


que não apresenta uma quantidade fixa de dígitos antes e
depois do ponto decimal (nos sistemas digitais se utiliza o
ponto ao invés da vírgula).
O termo ponto flutuante é proveniente justamente do fato
de não existir um número fixo de dígitos antes e depois do
ponto decimal, o que leva a definir que o ponto decimal
pode flutuar. 
44 Sistemas Digitais

Assim, tem-se que os dispositivos computacionais atuam também


no reconhecimento de números reais, ou seja, reconhecem não só
números inteiros como também números fracionários, e estes, por sua
vez, são interpretados como números que possuem ponto flutuante.

Essencialmente, os computadores são dispositivos que operam


com inteiros, no entanto são capazes de representar números reais em
geral, porém, utilizando códigos complexos.

SAIBA MAIS:

O código mais popular para representar números reais é


chamado IEEE Floating-Point Standard.

É válido ressaltar que a maioria dos números de ponto flutuante que


um computador pode representar consiste apenas em aproximações. Isso
se torna um dos desafios da programação: fazer com que os valores
de ponto flutuante apresentem aproximações que levem a resultados
razoáveis, tendo em vista que pequenas discrepâncias nas aproximações
são passíveis de se tornar um considerável elemento determinante dos
resultados finais, podendo fazê-los perder o sentido.

Pela definição geral de números de ponto flutuante, os números têm


mais de uma representação e isso é mais um dos problemas que o sistema
precisa enfrentar, pois um mesmo número real pode ser representado
de formas diferentes, por exemplo, . Pensando
em situações como essa, pode-se imaginar que o desenvolvimento de
cálculos aritméticos se transformaria em um processo bastante complexo
e desnecessário, tendo em vista que o sistema precisaria testar cada
igualdade de números.

Os números de ponto flutuantes compreendem um sistema de


representação numérica, por meio dos quais, faixas de números podem ser
evidenciados de forma independente do número de dígitos significativos.
Sistemas Digitais 45

Conhecimento Preliminares
Antes de nos aprofundarmos nos conceitos a respeito de pontos
flutuantes, vamos entender um pouco sobre dois conceitos importantes:
Notação de Ponto Fixo e Notação de Excesso.

Notação de Ponto Fixo


Na notação de Ponto Fixo, são utilizados pontos que funcionam
de maneira similar ao ponto na notação decimal, assim os dígitos que
estiverem à sua esquerda se relacionam à porção inteira do valor (tanto
para decimais quanto para binários), e os dígitos que estiverem à direita
do ponto se relacionam à porção não inteira. O expoente da base dois é
decrementada em uma a cada casa que se distancia do ponto.

Observe a seguir para o binário 11.1002:

•• Perceba que a porção inteira de é =

•• E a porção fracionária é =

•• O que resulta em: 3+0,5=3,5

Notação em Excesso:
Para a compreensão da notação de ponto flutuante, é necessário,
antes, ter entendimento de como deve se dar a representação de números
inteiros negativos e não negativos por meio da notação em excesso.

Na notação em excesso, cada um dos números é codificado,


seguindo um padrão de bits, cujo comprimento é convencionado.

Inicialmente, escolhe-se o comprimento padrão a ser utilizado e,


posteriormente, todos os padrões de bits nesse comprimento escolhido
são descritos. Essa descrição deve se dar na mesma ordem em que os
valores seriam gerados se estivessem sendo contados por meio do uso
do sistema binário.
46 Sistemas Digitais

No caso do excesso em 3 bits, por exemplo, tem-se a seguinte


notação:
Tabela 06 - Excesso em 3 bits

Valor binário Valor representado


001 -3

010 -2

011 -1

100 0

101 1

110 2

111 3
Fonte: Elaborado pelos autores (2021).

O padrão apresentado na tabela representa o ZERO. Para


representar 1, 2, 3 ... e -1, -2, -3…, são adotados padrões que seguem e
precedem, respectivamente, o padrão zero. A título de exemplo tem-se: o
valor 1 equivale a 1012 e o valor -1 à 0112.

Princípio de Ponto Flutuante


A faixa de precisão de um número pode ser separada evidenciando-
se os números de acordo com a notação científica a seguir:

Onde f é identificado como a fração ou mantissa e e compreende


um inteiro positivo ou negativo, chamado de expoente.

Observe que, na unidade definida como mantissa, estão


armazenados os dígitos significativos e, na porção decimal, cuja base é
10, localiza-se o ponto de raiz em que é armazenada a unidade separada,
definida como expoente.

Em computação, essa notação é identificada propriamente como


ponto flutuante.
Sistemas Digitais 47

Do ponto de vista de sistemas digitais, considerando o emprego de


um byte de memória, tem-se que, ao escolher o bit mais significativo do
byte para ser identificado como o bit de sinal do número, 0 significa valor
não negativo e 1 valor negativo. Ainda, subdivide-se, posteriormente, os 7
bits em dois grupos (o do expoente e o da mantissa), como mostrado na
figura a seguir:
Figura 05 - Notação de bit de ponto flutuante

Fonte: Elaborado pelos autores (2021).

De forma mais prática, imagine um byte formado por um padrão


de bits 01101011. Caso esse padrão seja interpretado como sendo um
exemplo de bit de ponto flutuante, tem-se que o primeiro 0 indica o sinal
+ do número, o expoente é dado por 110 e a mantissa por 1011.

A decodificação do byte é dada, então, pela extração da mantissa


e pela adição do ponto binário a sua esquerda, obtendo-se assim: 1011.

Extraindo, posteriormente, os elementos do expoente e fazendo a


sua interpretação como inteiros codificados em 3 bits, pelo excesso de 3
obtém-se o número positivo 2; assim, deve-se deslocar o ponto binário 2
bits à direita. Ou seja: 10.11.

Na notação de ponto fixo, obtém-se:

Observe, agora, como ficam alguns números quando expressos


nesse modelo de notação:

Observe que, a partir das exemplificações apresentadas


anteriormente, a faixa está efetivamente definida pelo número de dígitos
48 Sistemas Digitais

apresentados no expoente, já a precisão é identificada pelos números


dispostos nos dígitos da mantissa.

Há mais de uma forma de se representar um número qualquer, mas


simplificar a definição de desenvolvimento de operações em geral um
formato de representação padrão é adotado.

ACESSE:

Para conseguir visualizar melhor o ponto flutuante, clique


aqui.

Para se estabelecer a investigação das propriedades do método


de representação padrão, considere que essa representação, identificada
por R, contenha uma mantissa com três dígitos com sinal, compreendida
na faixa ou 0 ou um expoente de 2 dígitos com sinal. Assim, a
faixa de grandeza desses elementos vai de
Essa faixa engloba cerca de 199 ordens de grandezas. Observe que,
mesmo abrangendo essa quantidade de grandezas, são necessários
cinco dígitos e dois sinais para o armazenamento do número.

Nesse sentido, tem-se que os números de ponto flutuante podem


ser aplicados na modelagem de um sistema de números reais da
matemática, mas com algumas particularidades.

Observe a figura a seguir. Nela, é apresentado um esquema que,


de acordo com Tanenbaum (2013), divide de forma exagerada a linha de
números reais.
Sistemas Digitais 49

Figura 06 - Linha de números reais dividida em 7 regiões.

3 5
Falta negativa Falta positiva
1 2 4 6 7
Excesso Números negativos Zero Números positivos Excesso
negativo expressos expressos positivo

-1099 -10100 0 10100 1099

Fonte: Tanenbaum (2013).

Observe, por meio da representação do autor, que, em 1, estão


os números negativos grandes que são menores que
; em 2, estão os números negativos, que se localizam na faixa entre
em 3, estão os números negativos, que são
pequenos com grandezas menores que ; em 4, está o 0; em
5, estão os números positivos pequenos que apresentam grandezas
menores que ; em 6, estão os números positivos, entre
; e, em 7, estão os números positivos grandes,
maiores que .

De acordo com Tanenbaum (2013), uma relevante diferença entre o


conjunto de números passíveis de serem representados por três dígitos
de mantissa e dois de expoente e os números reais consiste no fato de
que os primeiros não podem ser utilizados para expressar números nas
regiões de 1, 3, 5 ou 7 (identificadas na figura anterior).

Caso o resultado proveniente de uma operação aritmética forneça


um valor nas regiões 1 ou 7 surgirá um tipo de erro definido como erro
por excesso (ou overflow) o que resultará em uma resposta incorreta.
Isso se dá pela natureza finita da representação para números, o que é
irrevogável.

De maneira similar, caso os resultados advindos de alguma


operação aritmética resultem em números localizados nas regiões 3 e
5, que não podem ser expressados, ocasiona em um erro definido como
erro de falta (ou underflow). Um exemplo desse erro seria a identificação
de um saldo bancário pelo número reais. Assim, tem-se que esse
valor não é melhor nem pior que um saldo de 0 reais, isso caracteriza em
um erro não tão grave quanto o erro de excesso.
50 Sistemas Digitais

A densidade é outra considerável diferença entre os números de


pontos flutuantes e os números reais. Entre dois números reais aleatórios,
x e y, há outro número real. Isso é uma propriedade proveniente do fato de
que, para quaisquer dois números reais diferentes, tem-se:

Sendo Z, o número real localizado entre x e y. Uma sequência


contínua é composta pelos números reais e os números de ponto flutuante
não formam esse tipo de sequência.

De acordo com Tanenbaum (2013), tem-se que 179.100 números


positivos, 179.100 números positivos e 0 podem ser apresentados pelo
sistema de 5 dígitos e dois sinais, o que resulta em 358.201 números.
Assim, do número infinito de reais entre podem apenas
ser especificados pela notação 358.201 números.

A tabela a seguir apresenta os limites inferior e superior aproximados


de decimais de pontos flutuantes que podem ser expressos.
Tabela 07 - Limites inferior e superior aproximados de decimais de pontos flutuantes que
podem ser expressos

DÍGITOS NA DÍGITOS NO LIMITE


LIMITE SUPERIOR
MANTISSA EXPOENTE INFERIOR
3 1 10-12 109
3 2 10-102 1099
3 3 10-1002 10999
3 4 10-10002 109999
4 1 10-13 109
4 2 10-103 1099
4 3 10-1003 10999
4 4 10-10003 109999
5 1 10-14 109
5 2 10-104 1099
5 3 10-1004 10999
5 4 10-10004 109999
10 3 10-1009 10999
20 3 10-1019 10999
Fonte: Tanenbaum (2013).
Sistemas Digitais 51

Caso um valor resultante de uma operação aritmética não possa


ser revelado na representação numérica que está sendo utilizada, utiliza-
se o número mais próximo que pode ser expresso, ou seja, é feito o seu
arredondamento.

SAIBA MAIS:

A matemática com números de ponto flutuante requer


muito poder de computação, assim, as operações de ponto
flutuante podem ser implementadas em um software ou
unidade de ponto flutuante (FPU). Os computadores mais
antigos costumavam ter uma unidade de ponto flutuante
separada que lidava com esses cálculos, mas agora a FPU
é normalmente embutida na CPU do computador.

Padrão de Ponto Flutuante IEEE 754


Após a década de 1980, um padrão comum de formato de ponto
flutuante foi inserido no mercado de computadores e as máquinas
passaram a ser desenvolvidas, utilizando esse formato padrão.

O padrão do IEEE foi, então, adotado e define três formatos: o de


precisão simples com 32 bits, o de precisão dupla com 64 bits e o de
precisão estendida com 80 bits.

O formato de precisão simples se resume a erros de arredondamento,


assim ele é direcionado em unidades aritméticas de ponto flutuante.

Tanto no formato de precisão simples como de precisão dupla


se utilizam base 2 nas mantissas e a notação de excesso de expoentes,
como demonstrado na figura a seguir:

Nesses formatos, um bit de sinal inicia o número, depois vem o


expoente, com excesso 127 na precisão simples e 1023 na precisão dupla,
em seguida, a mantissa de 23 e 52 bits.
52 Sistemas Digitais

Figura 07 - Linha de números reais dividida em 7 regiões

Para precisão simples:

BITS 1 8 23

Sinal Expoente Mantissa


Para precisão dupla:

BITS 1 11 52

Sinal Expoente Mantissa


Fonte: Elaborado pelos autores adaptado de Tanenbaum (2013).

Em termos gerais, é possível identificar as propriedades dos


números de pontos flutuantes no padrão IEEE por meio da tabela a seguir:
Tabela 08 - Padrão IEEE

Item Precisão simples Precisão dupla

Bit de sinal 1 1

Bit no expoente 8 11

Bit na mantissa 23 52

Bits, total 32 64

Sistema de expoente Excesso 127 Excesso 1023

Faixa de expoente -126 a 167 -1022 a 1023

Menor número normalizado 2-126 2-1022

Maior número normalizado Aprox. 10-128 Aprox. 21024

Faixa decimal Aprox.10-38 a 1038 Aprox. 10-308 a 10308

Menor número não


Aprox.10-45 Aprox. 10-324
normalizado
Fonte: Tanenbaum (2013).
Sistemas Digitais 53

A seguir são apresentados os tipos numéricos do padrão IEEE.


Tabela 09 - Tipos numéricos padrão IEEE

Bit de
sinal

Normalizado ± 0<Exp<Máx. Qualquer padrão de bit

Qualquer padrão de bit


Não normalizado ± 0
não zero

Zero ± 0 0

Infinito ± 1 1 1 ... 1 0

Qualquer padrão de bit


Não é um número ± 1 1 1 ... 1
não zero
Fonte: Tanenbaum (2013).

RESUMINDO:

E então, gostou do que lhe mostramos? Aprendeu mesmo


tudinho? Agora, só para termos certeza de que você
realmente entendeu o tema de estudo deste capítulo,
vamos resumir tudo o que vimos. Você deve ter aprendido
que os computadores não operam apenas com números
inteiros. O ponto flutuante como sendo um número que não
apresenta uma quantidade fixa de dígitos antes e depois
do ponto decimal. Com isso, tem-se que os dispositivos
computacionais atuam também no reconhecimento de
números reais, ou seja, reconhecem não só números
inteiros como também números fracionários, os quais, por
sua vez, são interpretados como números que possuem
ponto flutuante. Foram apresentados os conceitos
relacionados à notação de ponto fixo e de excesso em 3
bits para, então, identificar a notação de binário em ponto
flutuante, o qual é composto por um bit de sinal, três bits de
expoente e quatro bits de mantissa. O código mais popular
para representar números reais é chamado IEEE Floating-
Point Standard.
54 Sistemas Digitais

REFERÊNCIAS
BOYLESTAD, R.L.; NASHELSKY, L. Dispositivos eletrônicos e teoria
de circuitos. São Paulo: Prentice-Hall do Brasil, 1984.

FERDJALLAH, M.  Introduction to Digital Systems: Modeling,


Synthesis, and Simulation Using VHDL. [s. l.]John Wiley & Sons, 2011.

FLOYD, T. Sistemas digitais: fundamentos e aplicações. São Paulo:


Bookman Editora, 2007.

GOUVEA, M. O que são componentes ativos, passivos e


eletromecânicos. 2020. Disponível em: https://produza.ind.br/
tecnologia/componentes-passivos/. Acesso em: 20 set. 2021.

IDOETA, I.J.; CAPUANO, F.G. Elementos de eletrônica digital. São


Paulo: Saraiva Educação SA, 1993.

JONHSON, S. What is digital code? 2021. Disponível em: https://


www.techwalla.com/articles/how-to-type-a-triangle-character-on-the-
pc-keyboard. Acesso em: 20 set. 2021.

KAMAL, R. Digital Systems: Principles and Design. India: Pearson


Education India, 2009.

RIORDAN, M. Transistors. 2021. Disponível em: https://www.


britannica.com/technology/transistor. Acesso em: 20 set. 2021.

SILVA, L.M.C. Sistemas de Numeração. 2021. Disponível em: https://


docs.ufpr.br/~marianakleina/Material2.pdf. Acesso em: 20 set. 2021.

TANENBAUM, A.S.; ZUCCHI, W.L.  Organização estruturada de


computadores. São Paulo: Pearson Prentice Hall, 2013.

TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L. Sistemas Digitais; princípios


e aplicações. São Paulo: Editora Pearson, 2019.

Você também pode gostar