Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Aritmtica do computador
Arquitetura de Computadores
Professor Ricardo Amorim
Prof.ricardoamorim@gmail.com
Introduo
Referncia Bibliogrfica
Objetivo
O funcionalidade da unidade lgica e aritmtica
(ULA), enfocando a representao de nmeros e
as tcnicas para implementar as operaes
aritmticas. Geralmente, os processadores
implementam dois tipos de aritmtica: de
nmeros inteiros ou ponto fixo e de ponto
flutuante. Em ambos os casos, abordamos
primeiro a representao dos nmeros.
Principais Pontos
Os dois aspectos mais importantes da aritmtica
computacional so o modo como os nmeros so
representados (o formato binrio) e os
algoritmos usados para as operaes aritmticas
bsicas (adio, subtrao, multiplicao e
diviso). Isso se aplica tanto para a aritmtica de
nmeros inteiros quanto para a de nmeros de
ponto flutuante.
Principais Pontos
Nmeros de ponto flutuante so expressos na
forma de um nmero (mantissa parte decimal
de logaritmo) multiplicado por uma constante
(base) elevada a uma potncia inteira (expoente).
Eles podem ser usados para representar nmeros
muito grandes e muito pequenos.
Principais Pontos
A maioria dos processadores implementa o
padro IEEE 754 para representao e aritmtica
de nmeros de ponto flutuante. Esse padro
define um formato de 32 bits e de 64 bits.
Apndice Sistema de
Numerao
O Sistema Decimal
Na vida diria, usamos nmeros representados
em um sistema de numerao de base 10, com
dgitos decimais (0, 1, 2, 3, 4, 5, 6, 7, 8, 9),
conhecido como sistema decimal. Considere o
significado do nmero 83. Ele significa oito
dezenas e trs unidades:
83 = (8 x 10) + 3
Apndice Sistema de
Numerao
O Sistema Decimal
O nmero 4728 significa quatro milhares, sete
centenas, duas dezenas e oito unidades:
4728 = (4 x 1000) + (7 x 100) + (2 x 10) + 8
Apndice Sistema de
Numerao
O Sistema Decimal
O sistema decimal assim chamado por usar a
base 10. Isso significa que cada dgito do
nmero multiplicado por 10 elevado
potncia correspondente posio do dgito:
83= (8x101)+(3x100)
4728= (4x103)+(7x102)+(2x101)+(8x10)
Apndice Sistema de
Numerao
O Sistema Decimal
Valores fracionrios so representados do mesmo
modo:
472,83= (4x102)+(7x101)+(2x100)+(8x10-1)+(3x10-2)
Apndice Sistema de
Numerao
O Sistema Decimal
Para evitar confuso, algumas vezes usamos um
nmero subscrito para indicar a base do
sistema de numerao adotado. Por exemplo,
8310 e 472810 so nmeros representados na
notao decimal, ou seja nmeros decimais.
Apndice Sistema de
Numerao
O sistema binrio
No sistema decimal, so usados dez dgitos
distintos para representar os nmeros na base 10.
No sistema binrio, temos apenas dois dgitos, 1
e 0. Portanto, nmeros no sistema binrio so
representados na base 2.
Apndice Sistema de
Numerao
O sistema binrio
Converso entre nmeros binrios e decimais
A converso de um nmero na notao binria
para a notao decimal simples. Basta
multiplicar cada dgito binrio pela potncia de 2
adequada e somar os resultados.
equivale a:
128
64
32
16
Multiplicao:
1x128 1x64
0x32
0x16
1x8
1x4
1x2
0x1
Resulta em:
128
Somando tudo:
128+64+0+0+8+4+2+0
Resulta em:
206
64
equivale a:
128
64
32
16
Multiplicao:
Resulta em:
128
Somando tudo:
128+64+32+0+0+0+2+0
Resulta em:
226
64
32
Importante
Nota:
Nos exemplos utilizaremos valores de, no mximo,
256, que so valores que podem ser representados
por 8 dgitos binrios, ou na linguagem do
computador 8 bits, o que equivale exatamente a um
byte.
Apndice Sistema de
Numerao
O sistema binrio
Converso entre nmeros binrios e decimais
Para converter a notao decimal em notao
binria, o nmero inteiro e a parte fracionria so
tratados separadamente. Suponha que queremos
converter um nmero inteiro decimal N para a
forma binria. Se dividirmos N por 2, no sistema
decimal, obtendo um quociente N1 e um resto R1.
Apndice Sistema de
Numerao
O sistema binrio
Converso entre nmeros binrios e decimais
Ou seja, podemos converter da base 10 para a
base 2 por meio de repetidas divises por 2. O
resto e o quociente final, 1, nos do os dgitos
binrios de N, na ordem do menor para o maior
dgito significativo. A Figura 9.27 mostra dois
exemplos.
Apndice Sistema de
Numerao
Outro Exemplo
Atividade
Notao decimal Notao binria
220
101001
50
1011
79
10000111
Apndice Sistema de
Numerao
Em virtude da natureza binria inerente dos
componentes de um computador digital, todas
as formas de dados so representadas, dentro do
computador, por cdigos binrios.
Apndice Sistema de
Numerao
Notao hexadecimal
No entanto, embora o sistema binrio seja
conveniente para computadores,
excessivamente ineficiente para seres
humanos. Por isso, a maioria dos profissionais
de computao que passam grande parte do
tempo trabalhando com dados manipulados no
computador prefere uma notao mais compacta.
Apndice Sistema de
Numerao
Notao hexadecimal
Que notao usar?
Uma possibilidade seria a notao decimal. Essa
notao certamente mais compacta que a
notao binria, mas desconfortvel devido
tediosa converso entre a base 2 e a base 10.
Apndice Sistema de
Numerao
Notao hexadecimal
Os computadores costumam utilizar o byte ou octeto como
unidade bsica da memria; e, devido a um byte representar
28 = 256 valores possveis, e isto poder representar-se como
28 = 24 x 24 = 16 x 16 = 1 x 162 + 0 x 161 + 0 x 160, o que,
segundo o teorema geral da numerao posicional, equivale ao
nmero em base 16 10016, dois dgitos hexadecimais
correspondem exatamente permitem representar a mesma linha de
inteiros a um byte.
Apndice Sistema de
Numerao
Apndice Sistema de
Numerao
Notao hexadecimal
Em vez disso, adotada uma notao conhecida
como hexadecimal. Os dgitos binrios so
agrupados em conjuntos de quatro. A cada
combinao possvel de quatro dgitos binrios
atribudo um smbolo, como a seguir:
Apndice Sistema de
Numerao
Apndice Sistema de
Numerao
Notao hexadecimal
Por serem usados 16 smbolos, a notao chamada
hexadecimal e esses 16 smbolos so os dgitos
hexadecimais.
A notao hexadecimal usada no apenas para
representar nmeros inteiros. Ela tambm usada como
uma notao concisa para representar qualquer
seqncia de dgitos binrios, mesmo que representem
texto, nmeros ou algum outro tipo de dado.
Apndice Sistema de
Numerao
Notao hexadecimal
As razes para se usar notao hexadecimal so as
seguintes:
1. mais compacta que a notao binria.
2. Na maioria dos computadores, os dados binrios
tm um tamanho que mltiplo de 4 bits e,
portanto, mltiplo de um dgito hexadecimal.
3. extremamente fcil converter entre as notaes
binria e hexadecimal.
Apndice Sistema de
Numerao
Notao hexadecimal
O processo realizado to naturalmente que um
programador experiente pode converter
representaes visuais de dados binrios para
seus equivalentes hexadecimais mentalmente,
sem precisar escrever. bem provvel que voc
nunca necessite dessa habilidade em
particular.
Notao hexadecimal
Vimos que a numerao hexadecimal consiste no uso
de 16 smbolos para expressar um nmero. So eles:
0123456789ABCDEF
Os dgitos 0 - 9 possuem os mesmos valores dos
dgitos 0 - 9 decimais. Porm, os smbolos A - F
correspondem aos valores decimais 10 - 15, onde A
10, B 11, C 12... e F 15.
Notao hexadecimal
Converso de Nmeros Hexadecimais
Para converter o nmero 2AB316 para o sistema decimal,
multiplicamos o valor do nmero pelo valor da casa:
2 = 2 x 163 = 2 x 4096 = 8192
A = A x 162 = 10 x 256 = 2560
B = B x 161 = 11 x 16 = 176
3 = 3 x 160 = 3 x 1 = 3
Para finalizar, somamos todos os resultados:
8192 + 2560 + 176 + 3 = 1093110
Notao hexadecimal
Converso de Nmeros Decimais para
Hexadecimais
Para converter um nmero como 3456, por
exemplo, em hexadecimal, executamos a
seguinte operao:
Dividimos o 3456 pelo maior 16n possvel, ou
2
seja, por 16 (256):
Notao hexadecimal
Dividimos o 3456 pelo maior 16n possvel, ou
2
seja, por 16 (256):
Notao hexadecimal
Para finalizar a converso, seguimos a tabela:
Notao hexadecimal
Outra maneira de converter 345610
3456 / 16 = 216 resto 0
216 / 16 = 13 resto 8
Resultado 13, 8, 0 = D8016
Notao hexadecimal
Outro exemplo de converte Decimal para
Hexadecimal 102410
1024 / 16 = 64 resto 0
64 / 16 = 4 resto 0
resultado 40016
Notao hexadecimal
Hexadecimal para Decimal 40016
4 = 4 x 162 = 4 x 256 = 1024
0 = 0 x 161 = 0
0 = 0 x 160 = 0
1024 + 0 + 0 =102410
Outro Exemplo de Decimal para Hexadecimal 4
410 o prprio 416 pois o hexadecimal formado 1 2 3 4 6.. F.
Notao Octal
Sistema Octal um sistema de numerao cuja
base 8, ou seja, utiliza 8 smbolos para a
representao de quantidade. No ocidente, estes
smbolos so os algarismos arbicos:
01234567
Notao Octal
Converter o nmero octal 764 para o sistema
decimal:
76408
7648 = 7 x 8 + 6 x 8 + 4 x 8 =
448 + 48 + 4 = 50010
Sistema Numrico
Resumo
Sistema Numrico
Usando Planilha
0+0=0
0+1=1
1+0=1
1 + 1 = 0 (e "vai 1" para o dgito de ordem
superior)
1 + 1 + 1 = 1 (e "vai 1" para o dgito de ordem
superior)
0-0=0
0 - 1 = 1 ("vem um do prximo")
1-0=1
1-1=0
0-0=0
0 - 1 = 1 ("vem um do prximo")
1-0=1
1-1=0
Obs.: Como impossvel tirar 1 de zero, o artifcio "pedir
emprestado" 1 da casa de ordem superior. Ou seja, na realidade o
que se faz subtrair 1 de 10 e encontramos 1 como resultado,
devendo ento subtrair 1 do dgito de ordem superior (aquele 1 que se
"pediu emprestado"). Vamos lembrar que esse algoritmo
exatamente o mesmo da subtrao em decimal a que j estamos
acostumados desde primrio
0x0=0
0x1=0
1x0=0
1x1=1
Exemplo:
Efetuar 110 x 101
110
101
x---------110
000
110
+--------11110