Buscar

Arquitetura de Computadores Capitulo 8

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
OAC – Ling. de Máquina – Representação de Números - 1 Juliana F Camapum Wanderley
Organização e Arquitetura de Computadores
Aula 8 – Representação de Números
2002
Juliana F. Camapum Wanderley
http://www.cic.unb.br/docentes/juliana/cursos/oac
OAC – Ling. de Máquina – Representação de Números - 2 Juliana F Camapum Wanderley
Sumário
n Representação do computador das "Coisas"
n Números sem sinal Unsigned
n Computadores trabalhando
n Números com sinal Signed: busca por uma 
boa representação
n Atalhos
n Conclusão
2
OAC – Ling. de Máquina – Representação de Números - 3 Juliana F Camapum Wanderley
O que os computadores fazem?
n Computadores manipulam representações de 
coisas!
n O que se pode representar com N bits?
n 2N coisas!
n Quais coisas?
n Números! Caracteres! Pixels! Dólares! Posição! 
Instruções! ...
n Depende de quais operações se faz sobre eles
OAC – Ling. de Máquina – Representação de Números - 4 Juliana F Camapum Wanderley
Números Decimais: Base 10
n Dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
n Exemplo:
3271 = (3x103) + (2x102) + (7x101) + (1x100)
3
OAC – Ling. de Máquina – Representação de Números - 5 Juliana F Camapum Wanderley
Números: notação posicional
n Número Base B => B símbolos por dígito:
n Base 10 (Decimal): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Base 2 (Binário): 0, 1
n Representação do Número: 
n d31d30 ... d2d1d0 é um número de 32 dígitos
n valor = d31x B31 + d30 x B30 + ... + d2 x B2 + d1 x B1 + d0 x B0
n Binário: 0,1
n 1011010 = 1x26 + 0x25 + 1x24 + 1x23 + 0x22 + 1x2 + 0x1 = 
64 + 16 + 8 + 2 = 90
n Note que um número binário de 7 dígitos se transforma em um 
número decimal de 2 dígitos.
n Existe uma base que converte facilmente para números 
binários?
OAC – Ling. de Máquina – Representação de Números - 6 Juliana F Camapum Wanderley
Números Hexadecimais: Base 16
n Hexadecimal: 
0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F
n Dígitos Normais + 6 mais: tomados do alfabeto
n Conversão: Binário <-> Hex
n 1 dígito hex representa 16 valores decimais
n 4 dígitos binários representam 16 valores decimal
=> 1 dígito hex substitui 4 dígitos binários
n Exemplos:
n 1010 1100 0101 (binary) = ? (hex)
n 10111 (binary) = 0001 0111 (binary) = ?
n 3F9(hex) = ? (binary)
4
OAC – Ling. de Máquina – Representação de Números - 7 Juliana F Camapum Wanderley
Decimal vs. Hexadecimal vs.Binário
¨Exemplos:
¨1010 1100 0101 (binary) 
= AC5 (hex)
¨10111 (binary) 
= 0001 0111 (binary) 
= 17 (hex)
¨3F9(hex) 
= 11 1111 1001 (binary)
00 0 0000
01 1 0001
02 2 0010
03 3 0011
04 4 0100
05 5 0101
06 6 0110
07 7 0111
08 8 1000
09 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111
OAC – Ling. de Máquina – Representação de Números - 8 Juliana F Camapum Wanderley
O que fazer com as representações de 
números?
n Exatamente o que fazemos com números!
· Somá-los
· Subtraí-los
· Multiplicá-los
· Dividi-los
· Compará-los
n Exemplo: 10 + 7 = 17
· Tão simples somar em binário que podemos fazer circuitos 
para fazê-lo
· Subtração também exatamente como se faz em decimal
1 0 1 0
+ 0 1 1 1
----------------
1 0 0 0 1
11
5
OAC – Ling. de Máquina – Representação de Números - 9 Juliana F Camapum Wanderley
Comparação
n Como dizer se X > Y?
n Veja se X- Y > 0 
OAC – Ling. de Máquina – Representação de Números - 10 Juliana F Camapum Wanderley
Qual base nós utilizamos?
n Decimal: bom para humanos, especialmente para fazer 
aritmética
n Hex: ao olhar para uma string longa de números binários, 
é muito mais fácil converter para hex e olhar 4 
bits/símbolo
n Terrível para aritmética; just say no
n Binário: o que computadores usam; 
aprender como os computadores fazem +,-,*,/
n Para um computador, números sempre binários
n Não importa como o número é escrito:
3210 == 0x20 == 1000002
n Use subscritos “dez”, “hex”, “dois” no texto, slides, etc quando 
puder confundir
6
OAC – Ling. de Máquina – Representação de Números - 11 Juliana F Camapum Wanderley
Limites dos Números do Computador
n Bits podem representar qualquer coisa!
n Caracteres?
n 26 letras => 5 bits
n maisc./minusc. + pontuação 
=> 7 bits (em 8) (“ascii”)
n Código padrão para atender todas as linguagens do mundo 
=> 16 bits (unicode)
n Valores lógicos?
n 0 -> Falso, 1 => Verdadeiro
n cores ?
n localizações / endereços? comandos?
n Mas N bits => somente 2N coisas
OAC – Ling. de Máquina – Representação de Números - 12 Juliana F Camapum Wanderley
Como representar números negativos?
n Até agora, números sem sinal unsigned
n Solução óbvia: definir o bit mais à esquerda para ser o 
sinal! 
n 0 => +, 1 => -
n Resto dos bits podem ser valores numéricos do número
n Representação chamada sign and magnitude
n MIPS usa inteiros de 32-bit +1dez seria:
0000 0000 0000 0000 0000 0000 0000 0001
n E - 1dez em sign and magnitude seria:
1000 0000 0000 0000 0000 0000 0000 0001
7
OAC – Ling. de Máquina – Representação de Números - 13 Juliana F Camapum Wanderley
Problemas da sign and magnitude?
n Circuito Aritmético mais complicado
n Passos especiais dependendo se os sinais são os 
mesmos ou não
n Ainda, dois zeros
n 0x00000000 = +0dez
n 0x80000000 = -0dez
n O que significaria para a programação?
n Sign and magnitude abandonada
OAC – Ling. de Máquina – Representação de Números - 14 Juliana F Camapum Wanderley
Outra tentativa: complementar os bits
n Exemplo: 710 = 001112 -710 = 110002
n Chamada complemento de um
n Nota: números positivos tem 0s na frente, 
números negativos tem 1s.
00000 00001 01111...
111111111010000 ...
° O que é -00000 ?
° Quantos números positivos em N bits?
° Quantos negativos?
8
OAC – Ling. de Máquina – Representação de Números - 15 Juliana F Camapum Wanderley
Problemas do complemento de um
n Aritmética não muito difícil
n Ainda dois zeros
n 0x00000000 = +0dez
n 0xFFFFFFFF = -0dez
n O que significaria para a programação?
n Complemento de um abandonado porque outra 
solução foi melhor
OAC – Ling. de Máquina – Representação de Números - 16 Juliana F Camapum Wanderley
Busca por Representação do Número Negativo
¨ Qual é o resultado para números sem sinal se tentamos 
subtrair um número grande de um pequeno?
· Tentaria pegar da string de 0s da frente de modo que o 
resultado seria uma string de 1s na frente
- 3 - 4 => ...0011 - ...0100 = ...1111
· Na falta de uma alternativa melhor, escolher a representação 
que faz o hardware simples.
· Como com o complemento de um, 0s a frente => positivo, 
1s a frente => negativo 
- 000000...xxx é >=0
- 111111...xxx é < 0
- exceto ...1111 é -1 não zero
¨ Complemento de dois
9
OAC – Ling. de Máquina – Representação de Números - 17 Juliana F Camapum Wanderley
"Linha" dos Números Complemento de 2´s 
n 2 N-1 não 
negativos
n 2 N-1 negativos
n um zero
n Quantos 
positivos?
n Overflow?
00000 00001
00010
11111
11110
10000 0111110001
0 1
2
-1
-2
-15 -16 15
.
.
.
.
.
.
-3
11101
-411100
OAC – Ling. de Máquina – Representação de Números - 18 Juliana F Camapum Wanderley
Complemento de Dois
0000 ... 0000 0000 0000 0000dois = 0dez
0000 ... 0000 0000 0000 0001dois = 1dez
0000 ... 0000 0000 0000 0010dois = 2dez
. . .
0111 ... 1111 1111 1111 1101dois = 2.147.483.645dez
0111 ... 1111 1111 1111 1110dois = 2.147.483.646dez
0111 ... 1111 1111 1111 1111dois = 2.147.483.647dez
1000 ... 0000 0000 0000 0000dois = -2.147.483.648dez
1000 ... 0000 0000 0000 0001dois = -2.147.483.647dez
1000 ... 0000 0000 0000 0010dois = -2.147.483.646dez
. . . 
1111 ... 1111 1111 1111 1101dois = -3dez
1111 ... 1111 1111 1111 1110dois = -2dez
1111 ... 1111 11111111 1111dois = -1dez
n Um zero, 1° bit chamado bit de sinal , um negativo “extra”, não há 
2.147.483.648dez
10
OAC – Ling. de Máquina – Representação de Números - 19 Juliana F Camapum Wanderley
Fórmula do Complemento de Dois
n Pode representar números positivos e negativos em 
termos do valor do bit vez uma potência de 2:
n d31 x -231 + d30 x 230 + ... + d2 x 22 + d1 x 21 + d0 x 20
n Exemplo
1111 1111 1111 1111 1111 1111 1111 1100dois
= 1x-231 +1x230 +1x229+... +1x22+0x21+0x20
= -231 + 230 + 229 + ... + 22 + 0 + 0 
= -2.147.483.648dez + 2.147.483.644dez
= -4dez
n Nota: deve-se especificar a largura: nós usamos 32 bits
OAC – Ling. de Máquina – Representação de Números - 20 Juliana F Camapum Wanderley
Atalho do complemento de dois: Negação
n Inverter cada 0 para 1 e cada 1 para 0, então somar 1 ao 
resultado
n Soma de um número seu complemento de um deve ser 
111...111dois
n 111...111dois= -1dez
n Seja x´ a representação invertida de x
n Então x + x´ = -1 => x + x´ + 1 = 0 => x´ + 1 = -x
n Exemplo: -4 para +4 para -4
x : 1111 1111 1111 1111 1111 1111 1111 1100dois
x´: 0000 0000 0000 0000 0000 0000 0000 0011dois
+1: 0000 0000 0000 0000 0000 0000 0000 0100dois
()´: 1111 1111 1111 1111 1111 1111 1111 1011dois
+1: 1111 1111 1111 1111 1111 1111 1111 1100dois
11
OAC – Ling. de Máquina – Representação de Números - 21 Juliana F Camapum Wanderley
Atalho do compl. de dois: extensão do sinal
¨ Converter número em complemento de 2 usando n 
bits para mais de n bits
¨ Simplesmente repetir o bit mais significante (bit de 
sinal) do menor para preencher os novos bits
· Complemento de 2 positivo tem infinitos 0s
· Complemento de 2 negativo tem infinitos 1s.
· Representação de bit esconde os bits a frente; 
extensão de sinal restaura alguns deles
· 16-bit -4dez para 32-bit: 
1111 1111 1111 1100dois 
1111 1111 1111 1111 1111 1111 1111 1100dois
OAC – Ling. de Máquina – Representação de Números - 22 Juliana F Camapum Wanderley
Números com Sinal vs. Números sem Sinal
n Declaração C int
n Declara um número com sinal
n Usa complemento de dois
n Declaração C unsigned int
n Declara um número sem sinal
n Trata números 32 bits como inteiros sem sinal, de modo 
que o bit mais significante é parte do número, não um bit 
de sinal
n X = 1111 1111 1111 1111 1111 1111 1111 1100dois
n Y = 0011 1011 1001 1010 1000 1010 0000 0000dois
n É X > Y?
n Sem sinal: SIM
n Com sinal: NãO
12
OAC – Ling. de Máquina – Representação de Números - 23 Juliana F Camapum Wanderley
Números são armazenados em endereços 
n Memória é um lugar para 
armazenar bits
n Uma palavra é um número 
fixo de bits (e.g., 32) em um 
endereço.
n Endereços são naturalmente 
representados como número 
sem sinal
101101100110
00000
11111 = 2k - 1
01110
OAC – Ling. de Máquina – Representação de Números - 24 Juliana F Camapum Wanderley
E se o número for muito grande?
n Os padrões de bits acima são apenas representações de 
números
n Os números realmente tem um número infinito de dígitos
· Com quase todos sendo os mesmos exceto por alguns poucos 
mais à direita
· Simplesmente não mostre normalmente os dígitos à frente
n Se o resultado de somar (-, *, /) não pode ser 
representado por estes bits de HW mais à direita, 
acontece o que é conhecido como overflow
00000 00001 00010 1111111110
unsigned
13
OAC – Ling. de Máquina – Representação de Números - 25 Juliana F Camapum Wanderley
Conclusão
n Nós representamos "coisas" no computador como 
padrões particulares de bits: N bits =>2N
n números, caracteres, ...
n Decimal para cálculos humanos, binário para entender 
computadores, hex para entender binário
n Complemento de 2 é universal em computação: não 
pode ser evitado, então aprenda
n Operações no Computador sobre as representações de 
números correspondem as operações reais sobre as 
coisas reais.
n Overflow: números são infinitos mas os computadores 
são finitos, assim erros podem ocorrer

Outros materiais