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
2N coisas! Nmeros! Caracteres! Pixels! Dlares! Posio! Instrues! ... Depende de quais operaes se faz sobre eles
Juliana F Camapum Wanderley
Quais coisas?
n
Dgitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
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
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
Exemplos:
n n n
1010 1100 0101 (binary) = ? (hex) 10111 (binary) = 0001 0111 (binary) = ? 3F9(hex) = ? (binary)
Juliana F Camapum Wanderley
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
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
Comparao
n 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
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
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
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
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
Problemas do complemento de um
n
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
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
Complemento de dois
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
Pode representar nmeros positivos e negativos em termos do valor do bit vez uma potncia de 2:
n
= 1x-231 +1x230 +1x229+... +1x22+0x21+0x20 = -231 + 230 + 229 + ... + 22 + 0 + 0 = -2.147.483.648dez + 2.147.483.644dez = -4dez
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
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
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
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
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
Concluso
n
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