Números base 2, 8, 10, 16 Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007
Tópicos Números binário, decimal, octal, hexadecimal Conversões entre bases Números inteiros e fracionários aritmética binária representação de números negativos, complemento de 1 e 2
Introdução Máquinas do século XIX usavam base 10 O matemático inglês George Boole (1815-1864) publicou em 1854 os princípios da lógica booleana variáveis assumem apenas valores 0 e 1 (verdadeiro e falso). Copyleft Rossano Pablo Pinto 3
Introdução É difícil implementar dígito decimal (um número inteiro entre 0 e 9) em componentes elétricos Esta dificuldade determinou o uso da base 2 em computadores. A lógica booleana foi usada na implementação dos circuitos elétricos internos a partir do século XX. Copyleft Rossano Pablo Pinto 4
O que são números decimais Numeração decimal base 10 símbolos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 característica de valor posicional (casa) unidades (1s), dezenas (10s), centenas (100s), milhar (1000s),... Exemplo: número 238 8 x 1 = 8 3 x 10 = 30 2 x 100 = 200 8 + 30 + 200 = 238 Copyleft Rossano Pablo Pinto 5
O que são números decimais Numeração decimal base 10 Posições: 100000s 10000s 1000s 100s 10s 1s 10 5 + - 10 4 10 3 10 2 10 1 10 0 dígitos mais significativos (MSD) dígitos menos significativos (LSD) Copyleft Rossano Pablo Pinto 6
O que são números decimais Numeração decimal base 10 Posições: 100000s 10000s 1000s 100s 10s 1s 0 0 1 3 7 0 10 5 10 4 10 3 10 2 10 1 10 0 O número mil trezentos e setenta decimal é obtido: (1 x 1000) + (3 x 100) + (7 x 10) = 1000 + 300 + 70 = 1370 Copyleft Rossano Pablo Pinto 7
Numeração binária base 2 símbolos 0, 1 Cada dígito binário é chamado bit característica de valor posicional (casa) cada posição vale o dobro da anterior, assim: casa dos 1s, casa dos 2s, casa dos 4s, casa dos 8s, casa dos 16s,... Copyleft Rossano Pablo Pinto 8
Posições: + bits mais significativos (MSB) - bits menos significativos (LSB) Copyleft Rossano Pablo Pinto 9
Posições: 128s 64s 32s 16s 8s 4s 2s 1s 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 + bits mais significativos (MSB) - bits menos significativos (LSB) Copyleft Rossano Pablo Pinto 10
Exemplos: 128s 64s 32s 16s 8s 4s 2s 1s 0 0 0 1 0 0 1 1 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 O número zero, zero, zero, um, zero, zero, um, um binário vale 16 + 2 + 1 = 19 10011 2 = 19 10 Copyleft Rossano Pablo Pinto 11
Exemplos: 128s 64s 32s 16s 8s 4s 2s 1s 0 0 1 1 0 0 1 1 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 O número zero, zero, um, um, zero, zero, um, um binário vale 32 + 16 + 2 + 1 = 51 110011 2 = 51 10 Copyleft Rossano Pablo Pinto 12
Exemplos: 128s 64s 32s 16s 8s 4s 2s 1s 0 0 1 1 0 0 1 0 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 O número zero, zero, um, um, zero, zero, um, zero binário vale 32 + 16 + 2 = 50 110010 2 = 50 10 Copyleft Rossano Pablo Pinto 13
Exemplos: 128s 64s 32s 16s 8s 4s 2s 1s 0 0 1 0 1 1 1 0 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 O número zero, zero, um, zero, um, um, um, zero binário vale? Copyleft Rossano Pablo Pinto 14
Fracionários: 16s 8s 4s 2s 1s 0,5s 0,25s 0,125s, 2 4 2 3 2 2 2 1 2 0 1/2 1 1/2 2 1/2 3 + bits mais significativos (MSB) - bits menos significativos (LSB) Copyleft Rossano Pablo Pinto 15
Fracionários: 16s 8s 4s 2s 1s 0,5s 0,25s 0,125s 0 2 4 1 1 1 0 1 0 1 2 3 2 2 2 1 2 0, 1/2 1 1/2 2 1/2 3 O número zero, um, um, um, zero vírgula, um, zero um binário vale: 8 + 4 + 2 + 0,5 + 0,125 = 14,625 1110,101 2 = 14,625 10 Copyleft Rossano Pablo Pinto 16
Conversão de base 10 para base 2: Trabalha com divisão inteira + resto 87 10 = 1010111 2 87 / 2 = 43 resto 1 43 / 2 = 21 resto 1 21 / 2 = 10 resto 1 10 / 2 = 5 resto 0 5 / 2 = 2 resto 1 2 / 2 = 1 resto 0 1 / 2 = 0 resto 1 Copyleft Rossano Pablo Pinto 17
Conversão de base 10 para base 2: Trabalha com divisão inteira + resto 87 10 = 1010111 2 VERIFICANDO 87 / 2 = 43 resto 1 43 / 2 = 21 resto 1 21 / 2 = 10 resto 1 10 / 2 = 5 resto 0 5 / 2 = 2 resto 1 2 / 2 = 1 resto 0 1 / 2 = 0 resto 1 64s 32s 16s 8s 4s 2s 1s 1 0 1 0 1 1 1 2 6 2 5 2 4 2 3 2 2 2 1 2 0 Copyleft Rossano Pablo Pinto 18
Conversão de base 10 para base 2: Trabalha com divisão inteira + resto 87 10 = 1010111 2 VERIFICANDO 87 / 2 = 43 resto 1 43 / 2 = 21 resto 1 21 / 2 = 10 resto 1 10 / 2 = 5 resto 0 5 / 2 = 2 resto 1 2 / 2 = 1 resto 0 1 / 2 = 0 resto 1 64s 32s 16s 8s 4s 2s 1s 1 0 1 0 1 1 1 2 6 2 5 2 4 2 3 2 2 2 1 2 0 64 + 16 + 4 + 2 + 1 = 87 Copyleft Rossano Pablo Pinto 19
Copyleft Rossano Pablo Pinto 20
Condição de parada 1 / 2 = 0 resto 1 Copyleft Rossano Pablo Pinto 21
Conversão fracionária base 10 p/ base 2 0,375 10 =,011 2 Copyleft Rossano Pablo Pinto 22
Conversão fracionária base 10 p/ base 2 0,375 10 =,011 2 Condição de parada 0,50 x 2 = 1,00 Copyleft Rossano Pablo Pinto 23
Conversão fracionária base 10 p/ base 2 0,84375 10 =,11011 2 Copyleft Rossano Pablo Pinto 24
Conversão fracionária base 10 p/ base 2 0,84375 10 =,11011 2 Condição de parada 0,50 x 2 = 1,00 Copyleft Rossano Pablo Pinto 25
Conversão fracionária base 10 p/ base 2 5,625 10 = 101,101 2 Copyleft Rossano Pablo Pinto 26
Copyleft Rossano Pablo Pinto 27
Condição de parada 1 / 2 = 0 resto 1 Condição de parada 0,50 x 2 = 1,00 Copyleft Rossano Pablo Pinto 28
DICA: DIVIDE MULTIPLICA Copyleft Rossano Pablo Pinto 29
Exercícios: Conversões entre bases Copyleft Rossano Pablo Pinto 30
Soma de números base 2 Regra 1: 0 + 0 = 0 Regra 2: 0 + 1 = 1 Regra 3: 1 + 0 = 1 Regra 4: 1 + 1 = 0 e vai-um (transporte) resultado final = 10 Copyleft Rossano Pablo Pinto 31
Soma de números base 2 Copyleft Rossano Pablo Pinto 32
Soma de números base 2 Copyleft Rossano Pablo Pinto 33
Números com precisão FINITA Quanto é possível representar em 3 casas? Conceito de overflow resultado da soma é um número maior que o número de bits para representá-lo Ex.: registrador de 4 bits 1111 + 0001 -> overflow 0001 + 0111 -> OK 1010 + 0111 -> overflow Copyleft Rossano Pablo Pinto 34
Exercícios Soma de números binários Copyleft Rossano Pablo Pinto 35
Representação de números negativos em binário (3 maneiras + conhecidas): magnitude com sinal (signed magnitude) sinônimos: magnitude / amplitude complemento de 1 (one's complement) complemento de 2 (two's complement) Copyleft Rossano Pablo Pinto 36
Números binários com sinal Ex.: 8 bitsl Bit de sinal 0 = + (Positivo) 1 = - (Negativo) 128s 64s 32s 16s 8s 4s 2s 1s MSB LSB Amplitude Copyleft Rossano Pablo Pinto 37
magnitude com sinal (signed magnitude) o bit MSB (mais significativo) é utilizado para indicar que o número é negativo o restante do número é representado como o mesmo número positivo 128s 64s 32s 16s 8s 4s 2s 1s MSB LSB Amplitude Copyleft Rossano Pablo Pinto 38
magnitude com sinal (signed magnitude) 128s 64s 32s 16s 8s 4s 2s 1s 0 MSB 0 0 0 0 1 0 0 LSB 00000100 2 = 4 10 Copyleft Rossano Pablo Pinto 39
magnitude com sinal (signed magnitude) 128s 64s 32s 16s 8s 4s 2s 1s 1 MSB 0 0 0 0 1 0 0 LSB 10000100 2 = - 4 10 Copyleft Rossano Pablo Pinto 40
magnitude com sinal (signed magnitude) Problema: 2 representações para 0 (zero) 00000000 2 = 0 10 10000000 2 = - 0 10 Copyleft Rossano Pablo Pinto 41
complemento de 1 (one's complement) o MSB é utilizado para sinal inverte todos os bits da amplitude (0 vira 1 e 1 vira 0) 128s 64s 32s 16s 8s 4s 2s 1s MSB LSB Amplitude Copyleft Rossano Pablo Pinto 42
complemento de 1 (one's complement) 128s 64s 32s 16s 8s 4s 2s 1s 1 MSB 0 0 0 0 1 0 0 LSB 128s 64s 32s 16s 8s 4s 2s 1s 1 MSB 1 1 1 1 0 1 1 LSB 11111011 2 = - 4 10 Copyleft Rossano Pablo Pinto 43
complemento de 1 (one's complement) Problema: 2 representações para o 0 (zero) 00000000 2 = 0 10 11111111 2 = - 0 10 Copyleft Rossano Pablo Pinto 44
complemento de 2 (two's complement) o MSB é utilizado para indicar o sinal a amplitude é representada em complemento de 1 somado de 1 128s 64s 32s 16s 8s 4s 2s 1s MSB LSB Amplitude Copyleft Rossano Pablo Pinto 45
complemento de 2 (two's complement) 128s 64s 32s 16s 8s 4s 2s 1s 1 MSB 0 0 0 0 1 0 0 LSB 128s 64s 32s 16s 8s 4s 2s 1s 1 MSB 128s 1 1 1 1 1 0 1 1 LSB 64s 32s 16s 8s 4s 2s 1s 1 1 1 1 1 0 0 +1 MSB 11111100 2 = - 4 10 LSB Copyleft Rossano Pablo Pinto 46
complemento de 2 (two's complement) Benefícios: Mesmo circuito para soma e subtração apenas uma representação de zero: 00000000 2 = 0 10 Copyleft Rossano Pablo Pinto 47
complemento de 2 (two's complement) Representação em complemento de 2 com 8 bits +127 +126 +125 +124... +3 +2 +1 +0-1 - 2-3... - 125-126 - 127-128 sinal amplitude 0 111 1111 0 111 1110 0 111 1101 0 111 1100... 0 000 0011 0 000 0010 0 000 0001 0 000 0000 1 111 1111 1 111 1110 1 111 1101... 1 000 0011 1 000 0010 1 000 0001 1 000 0000 Copyleft Rossano Pablo Pinto 48
complemento de 2 (two's complement) Faixas de números: 8 bits: -128 à +127 16 bits: -32.768 à +32.767 32 bits: -2.147.483.648 à +2.147.483.647 64 bits: -9.223.372.036.854.775.808 à +9.223.372.036.854.775.807 Copyleft Rossano Pablo Pinto 49
Adição de números complemento de 2 Adição de 2 números positivos Adição de 2 números negativos Copyleft Rossano Pablo Pinto 50
Adição de números complemento de 2 Adição de 1 número positivo menor a 1 negativo maior Adição de 1 número positivo maior a 1 negativo menor Copyleft Rossano Pablo Pinto 51
Subtração de números complemento de 2 Copyleft Rossano Pablo Pinto 52
Subtração de números complemento de 2 Copyleft Rossano Pablo Pinto 53
Prefixos binários kilo k/k 2 10 = 1.024 mega M 2 20 = 1.048.576 giga G 2 30 = 1.073.741.824 tera T 2 40 = 1.099.511.627.776 peta P 2 50 = 1.125.899.906.842.624 exa E 2 60 = 1.152.921.504.606.846.976 zetta Z 2 70 = 1.180.591.620.717.411.303.420 yotta Y 2 80 = 1.208.925.819.614.629.174.706.176 Copyleft Rossano Pablo Pinto 54
Exercícios Soma e subtração usando complemento de 2 Copyleft Rossano Pablo Pinto 55
O que são números hexadecimais Numeração hexadecimal base 16 símbolos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F característica de valor posicional (casa) 1s, 16s, 256s, 4096s, 65536s, 1048576s... Exemplo: número 2B6 6 x 1 = 6 11 x 16 = 176 2 x 256 = 512 6 + 176 + 512 = 694 10 Copyleft Rossano Pablo Pinto 56
O que são números hexadecimais Numeração hexadecimal base 16 Posições 1Ms 65536s 4096s 256s 16s 1s 0 0 0 A 3 F 16 5 16 4 16 3 16 2 16 1 16 0 O número A3F hexadecimal é obtido: (10 x 256) + (3 x 16) + (15 x 1) = 2560 + 48 + 15 = 2623 10 Copyleft Rossano Pablo Pinto 57
O que são números hexadecimais Numeração hexadecimal base 16 Posições 1Ms 65536s 4096s 256s 16s 1s 0,0625s 0 0 0 A 3 F 16 5 16 4 16 3 16 2 16 1 16 0, C 1/16 1 O número A3F hexadecimal é obtido: (10 x 256) + (3 x 16) + (15 x 1) +(12 x 0,0625) = 2560 + 48 + 15 + 0,75 = 2623,75 10 Copyleft Rossano Pablo Pinto 58
O que são números hexadecimais Numeração hexadecimal base 16 Conversões: 45 / 16 = 2 resto 13 2 / 16 = 0 resto 2 0,25 x 16 = 4,00 0,00 x 16 = 0,00 45 10 = 2 D 16 0,25 10 = 0,4 16 Copyleft Rossano Pablo Pinto 59
O que são números hexadecimais Numeração hexadecimal base 16 Conversão hexa <-> binário Conceitos: nibble = conjunto de 4 bits Quanto vale 1111 0010 1110 2 em hexadecimal? F2E 16 Copyleft Rossano Pablo Pinto 60
O que são números octais Numeração octal base 8 Elabore toda a teoria dos números octais, tendo vista em as teorias de base 2, 10 e 16 vistas até agora. Elabore a teoria aplicada aos números de base 4, 5, 6 e 9 Copyleft Rossano Pablo Pinto 61