Representação de Dados e Sistemas de Numeração • Sistema de numeração decimal e números decimais (base 10) • Sistema de numeração binário e números binários (base 2) • • Conversão entre binário e decimal Sistema de numeração hexadecimal e números hexadecimais (base 16) • Conversão entre hexadecimal e outras bases • Números octais (base 8) • Representação de números reais em binário • Operações aritméticas com números binários: • Soma, subtração, multiplicação e divisão • Complemento a 1 e complemento a 2 de números binários • Números binários com sinal • • Operações aritméticas com números binários com sinal Representação de dados alfanuméricos: códigos ASCII e Unicode 1 Operações Aritméticas com Números Binários • • Operações aritméticas com números inteiros na base 2: • Adição • Subtração • Multiplicação • Divisão Números binários: • Sem sinal: representa números naturais • Com sinal: representa números inteiros 2 Adição de Números Binários • Adição de bits: 0+0 0+1 1+0 1+1 • Carry: vai-um • Exemplos: = = = = 1 0 1 1 0 Soma 0 com carry 0 Soma 1 com carry 0 Soma 1 com carry 0 Soma 0 com carry 1 1 + 0 0 1 0 0 1 + 0 1 0 0 1 1 0 1 1 1 1 1 0 + 0 1 1 0 1 1 0 1 0 0 1002 + 102 = 1102 1012 + 12 = 1102 112 + 12 = 1002 410 + 210 = 610 510 + 110 = 610 310 + 110 = 410 3 Adição de Números Binários • Adição de bits, considerando que houve carry: 1+0+0 1+0+1 1+1+0 1+1+1 • = = = = 0 1 1 1 1 0 0 1 Soma 1 com carry 0 Soma 0 com carry 1 Soma 0 com carry 1 Soma 1 com carry 1 Exemplo: 1 0 + 0 1 1 1 1 1 0 1 1 1 1 0 0 1112 + 1012 = 11002 710 + 510 = 1210 4 Exemplos: Adição de Números Binários 1102 + 1002 1112 + 112 5 Subtração de Números Binários • Subtração de bits: 0–0 1–1 1–0 1 0–1 = = = = 0 0 1 1 • Borrow: pedir emprestado • Exemplos: Subtração 0 – 1, pegando emprestado 1 – 1 1 0 0 0 1 – 1 1 0 0 1 1 – 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1102 – 1002 = 102 1102 – 1012 = 12 1012 – 112 = 102 610 – 410 = 210 610 – 510 = 110 510 – 310 = 210 6 Exemplos: Subtração de Números Binários 1 – 0 0 0 0 1 1 – 0 0 1 0 1 0 1 1 0 0 1 1002 – 12 = 112 1002 – 112 = 12 410 – 110 = 310 410 – 310 = 110 1 – 0 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1000 10002 – 111 00012 = 7 Multiplicação de Números Binários • Multiplicação de bits: 0×0 0×1 1×0 1×1 • = = = = 0 0 0 1 Método: • Similar à multiplicação de números decimais • Produto = multiplicando × multiplicador • Calcula produtos parciais: • Multiplica multiplicando por cada bit do multiplicador • Desloca cada produto parcial uma posição para a esquerda • Soma produtos parciais 8 Exemplos: Multiplicação de Números Binários 1 1 × 1 1 1 1 1 × 1 0 1 1 1 + 1 1 1 1 1 + 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 112 × 112 = 10012 310 × 310 = 910 1112 × 1012 = 1000112 710 × 510 = 3510 9 Exemplo: Multiplicação de Números Binários 11012 × 10102 10 Divisão de Números Binários • Método similar à divisão de números decimais • Exemplo: 1 1’ 0’ – 1 1 1 1 1 0 0 0 0 1102 ÷ 112 = 102 1 1’ 0’ – 1 0 1 0 1 1 0 1 0 – 1 0 0 0 610 ÷ 310 = 210 1102 ÷ 102 = 112 610 ÷ 210 = 310 11 Exemplo: Divisão de Números Binários 11002 ÷ 1002 12 Complemento a 1 e Complemento a 2 de Números Binários • Permitem representação de números binários com sinal • Complemento a 1 de um número binário: • Obtido invertendo-se todos os bits do número (troca bits em 0 por 1 e bits em 1 por 0) • Exemplos: Número A → 1 0 1 1 0 0 1 0 Complemento a 1 de A → 0 1 0 0 1 1 0 1 Número B → 1 0 1 1 1 0 0 0 Complemento a 1 de B → 13 Complemento a 1 e Complemento a 2 de Números Binários • Complemento a 2 de um número A de n bits: • • Obtido somando-se 1 ao complemento a 1 do número A: • • complemento2 ( A ) = complemento1 ( A ) + 1 Propriedade: • • complemento2 ( A ) = 2n − A complemento2 ( complemento2 (A) ) = A Exemplo: Número A → 1 0 1 1 0 0 1 0 Complemento a 1 de A → 0 1 0 0 1 1 0 1 Soma 1 ao complemento a 1 → Complemento a 2 de A → + 1 0 1 0 0 1 1 1 0 14 Exemplo: Complemento a 2 de Número Binário 1 0 1 1 1 0 0 0 Número B → Complemento a 1 de B → Soma 1 ao complemento a 1 → + 1 Complemento a 2 de B → 15