Anda di halaman 1dari 13

Organizao e Arquitetura de Computadores

Aula 8 Representao de Nmeros

2002 Juliana F. Camapum Wanderley


http://www.cic.unb.br/docentes/juliana/cursos/oac
OAC Ling. de Mquina Representao de Nmeros - 1 Juliana F Camapum Wanderley

Sumrio
n n n n

Representao do computador das "Coisas" Nmeros sem sinal Unsigned Computadores trabalhando Nmeros com sinal Signed: busca por uma boa representao Atalhos Concluso

n n

OAC Ling. de Mquina Representao de Nmeros - 2

Juliana F Camapum Wanderley

O que os computadores fazem?


n

Computadores manipulam representaes de coisas! O que se pode representar com N bits?


n

2N coisas! Nmeros! Caracteres! Pixels! Dlares! Posio! Instrues! ... Depende de quais operaes se faz sobre eles
Juliana F Camapum Wanderley

Quais coisas?
n

OAC Ling. de Mquina Representao de Nmeros - 3

Nmeros Decimais: Base 10


n

Dgitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Exemplo: 3271 = (3x103) + (2x102) + (7x101) + (1x100)


n

OAC Ling. de Mquina Representao de Nmeros - 4

Juliana F Camapum Wanderley

Nmeros: notao posicional


n

Nmero Base B => B smbolos por dgito:


n

Base 10 (Decimal): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Base 2 (Binrio): 0, 1 d31d30 ... d 2d1d0 um nmero de 32 dgitos valor = d31x B31 + d30 x B30 + ... + d2 x B2 + d 1 x B1 + d0 x B0 1011010 = 1x2 6 + 0x2 5 + 1x24 + 1x23 + 0x22 + 1x2 + 0x1 = 64 + 16 + 8 + 2 = 90 Note que um nmero binrio de 7 dgitos se transforma em um nmero decimal de 2 dgitos. Existe uma base que converte facilmente para nmeros binrios?
Juliana F Camapum Wanderley

Representao do Nmero:
n n

Binrio: 0,1
n

OAC Ling. de Mquina Representao de Nmeros - 5

Nmeros Hexadecimais: Base 16


n

Hexadecimal: 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F
n

Dgitos Normais + 6 mais: tomados do alfabeto 1 dgito hex representa 16 valores decimais 4 dgitos binrios representam 16 valores decimal

Converso: Binrio <-> Hex


n n

=> 1 dgito hex substitui 4 dgitos binrios


n

Exemplos:
n n n

1010 1100 0101 (binary) = ? (hex) 10111 (binary) = 0001 0111 (binary) = ? 3F9(hex) = ? (binary)
Juliana F Camapum Wanderley

OAC Ling. de Mquina Representao de Nmeros - 6

Decimal vs. Hexadecimal vs.Binrio


Exemplos: 1010 1100 0101 (binary) = AC5 (hex)

10111 (binary) = 0001 0111 (binary) = 17 (hex)

3F9(hex) = 11 1111 1001 (binary)

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

0 1 2 3 4 5 6 7 8 9 A B C D E F

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Juliana F Camapum Wanderley

OAC Ling. de Mquina Representao de Nmeros - 7

O que fazer com as representaes de nmeros?


n

Exatamente o que fazemos com nmeros!


Som-los Subtra-los Multiplic-los Dividi-los Compar-los

1 1 1 0 + 10 + 7 = 17 0 1

1 1

0 1

---------------n

Exemplo:

To simples somar em binrio que podemos fazer circuitos para faz-lo Subtrao tambm exatamente como se faz em decimal
Juliana F Camapum Wanderley

OAC Ling. de Mquina Representao de Nmeros - 8

Comparao
n n

Como dizer se X > Y? Veja se X- Y > 0

OAC Ling. de Mquina Representao de Nmeros - 9

Juliana F Camapum Wanderley

Qual base ns utilizamos?


n

Decimal: bom para humanos, especialmente para fazer aritmtica Hex: ao olhar para uma string longa de nmeros binrios, muito mais fcil converter para hex e olhar 4 bits/smbolo
n

Terrvel para aritmtica; just say no

Binrio: o que computadores usam; aprender como os computadores fazem +,-,*,/


n n

Para um computador, nmeros sempre binrios No importa como o nmero escrito: 3210 == 0x20 == 1000002 Use subscritos dez, hex, dois no texto, slides, etc quando puder confundir
Juliana F Camapum Wanderley

OAC Ling. de Mquina Representao de Nmeros - 10

Limites dos Nmeros do Computador


n n

Bits podem representar qualquer coisa! Caracteres?


n n

26 letras => 5 bits maisc./minusc. + pontuao => 7 bits (em 8) (ascii) Cdigo padro para atender todas as linguagens do mundo => 16 bits (unicode) 0 -> Falso, 1 => Verdadeiro

Valores lgicos?
n

n n n

cores ? localizaes / endereos? comandos? Mas N bits => somente 2N coisas


Juliana F Camapum Wanderley

OAC Ling. de Mquina Representao de Nmeros - 11

Como representar nmeros negativos?


n n

At agora, nmeros sem sinal unsigned Soluo bvia: definir o bit mais esquerda para ser o sinal!
n n

0 => +, 1 => Resto dos bits podem ser valores numricos do nmero

n n

Representao chamada sign and magnitude MIPS usa inteiros de 32-bit +1dez seria: E - 1dez em sign and magnitude seria:
Juliana F Camapum Wanderley

0000 0000 0000 0000 0000 0000 0000 0001


n

1000 0000 0000 0000 0000 0000 0000 0001


OAC Ling. de Mquina Representao de Nmeros - 12

Problemas da sign and magnitude?


n

Circuito Aritmtico mais complicado


n

Passos especiais dependendo se os sinais so os mesmos ou no

Ainda, dois zeros


n n n

0x00000000 = +0dez 0x80000000 = -0dez O que significaria para a programao?

Sign and magnitude abandonada


Juliana F Camapum Wanderley

OAC Ling. de Mquina Representao de Nmeros - 13

Outra tentativa: complementar os bits


n n n

Exemplo: 710 = 001112 -710 = 110002 Chamada complemento de um Nota: nmeros positivos tem 0s na frente, nmeros negativos tem 1s.
00000 10000 ... 11110 11111 00001 ... 01111

O que -00000 ? Quantos nmeros positivos em N bits? Quantos negativos?


OAC Ling. de Mquina Representao de Nmeros - 14 Juliana F Camapum Wanderley

Problemas do complemento de um
n

Aritmtica no muito difcil Ainda dois zeros


n n n

0x00000000 = +0dez 0xFFFFFFFF = -0dez O que significaria para a programao?

Complemento de um abandonado porque outra soluo foi melhor


Juliana F Camapum Wanderley

OAC Ling. de Mquina Representao de Nmeros - 15

Busca por Representao do Nmero Negativo

Qual o resultado para nmeros sem sinal se tentamos subtrair um nmero 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 representao 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 no zero


Juliana F Camapum Wanderley

Complemento de dois

OAC Ling. de Mquina Representao de Nmeros - 16

"Linha" dos Nmeros Complemento de 2s


00000 00001 11111 11110 00010 -1 0 1 11101 2 -2 -3 11100 -4 . . . . . . -15 -16 15 10001 10000 01111
OAC Ling. de Mquina Representao de Nmeros - 17 Juliana F Camapum Wanderley

2 N-1 no negativos 2 N-1 negativos um zero Quantos positivos? Overflow?

n n n

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 1111 1111 1111dois = -1dez Um zero, 1 bit chamado bit de sinal , um negativo extra, no h 2.147.483.648dez
OAC Ling. de Mquina Representao de Nmeros - 18 Juliana F Camapum Wanderley

Frmula do Complemento de Dois


n

Pode representar nmeros positivos e negativos em termos do valor do bit vez uma potncia de 2:
n

d31 x -231 + d30 x 230 + ... + d2 x 22 + d 1 x 21 + d0 x 20

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: ns usamos 32 bits


Juliana F Camapum Wanderley

OAC Ling. de Mquina Representao de Nmeros - 19

Atalho do complemento de dois: Negao


n

Inverter cada 0 para 1 e cada 1 para 0, ento somar 1 ao resultado


n

Soma de um nmero seu complemento de um deve ser 111...111dois 111...111dois = -1dez Seja x a representao invertida de x Ento x + x = -1 => x + x + 1 = 0 => x + 1 = -x

n n 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

OAC Ling. de Mquina Representao de Nmeros - 20

Juliana F Camapum Wanderley

Atalho do compl. de dois: extenso do sinal Converter nmero 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. Representao de bit esconde os bits a frente;

extenso de sinal restaura alguns deles


16-bit -4dez para 32-bit:

1111 1111 1111 1100dois


Juliana F Camapum Wanderley

1111 1111 1111 1111 1111 1111 1111 1100dois


OAC Ling. de Mquina Representao de Nmeros - 21

Nmeros com Sinal vs. Nmeros sem Sinal


n

Declarao C int
n n

Declara um nmero com sinal Usa complemento de dois Declara um nmero sem sinal Trata nmeros 32 bits como inteiros sem sinal, de modo que o bit mais significante parte do nmero, no um bit de sinal

Declarao C unsigned int


n n

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: NO
OAC Ling. de Mquina Representao de Nmeros - 22 Juliana F Camapum Wanderley

Nmeros so armazenados em endereos


n
00000

Memria um lugar para armazenar bits Uma palavra um nmero fixo de bits (e.g., 32) em um endereo. Endereos so naturalmente representados como nmero sem sinal

n
101101100110

01110

n
11111 = 2k - 1

OAC Ling. de Mquina Representao de Nmeros - 23

Juliana F Camapum Wanderley

E se o nmero for muito grande?


n

Os padres de bits acima so apenas representaes de nmeros Os nmeros realmente tem um nmero infinito de dgitos

Com quase todos sendo os mesmos exceto por alguns poucos mais direita Simplesmente no mostre normalmente os dgitos frente

Se o resultado de somar (-, *, /) no pode ser representado por estes bits de HW mais direita, acontece o que conhecido como overflow 00000 00001 00010 unsigned 11110 11111

OAC Ling. de Mquina Representao de Nmeros - 24

Juliana F Camapum Wanderley

Concluso
n

Ns representamos "coisas" no computador como padres particulares de bits: N bits =>2N


n

nmeros, caracteres, ...

Decimal para clculos humanos, binrio para entender computadores, hex para entender binrio Complemento de 2 universal em computao: no pode ser evitado, ento aprenda Operaes no Computador sobre as representaes de nmeros correspondem as operaes reais sobre as coisas reais. Overflow: nmeros so infinitos mas os computadores so finitos, assim erros podem ocorrer
Juliana F Camapum Wanderley

OAC Ling. de Mquina Representao de Nmeros - 25

Anda mungkin juga menyukai