Sistemas de Numeração e Códigos Raul Queiroz Feitosa Objetivo Apresentar técnicas de representação e converção de números em diversos sistemas de numeração. 2 1
Conteúdo Introdução Conversão da base 10 Conversão para a base 10 Conversão entre as bases 2, 8 e 16 Adição Binária Números Negativos Complemento de 2 Códigos 3 Introdução Um número na base 10, p.ex., 7419 constitui uma representação compacta de 7 10 3 + 4 10 2 + 1 10 1 + 9 10 0 4 2
Introdução De modo análogo, um número na base 2, p.ex., N= 110101 constitui uma representação compacta de 1 2 5 + 1 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = 32 + 16 + 0 + 4 + 0 + 1 = 53 (decimal) 5 Conteúdo Introdução Conversão da base 10 Conversão para a base 10 Conversão entre as bases 2, 8 e 16 Adição Binária Números Negativos Complemento de 2 Códigos 6 3
Conversão da base 10 Para converter o número inteiro N dado na base 10 para a base b, divida sucessivamente por b, N b r 0 N 0 b r 1 N 1 b Nn-1 b r n 0 parada e tome os restos de baixo para cima (N) 10 = ( r n r 1 r 0 ) b 7 Conversão da base 10 Exercício 1: Converta o número 653 10 para a base 2 e para a base 8. Exercício 2: Converta o número 653 10 para a base 16 usando para os valores 10, 11, 12, 13, 14, 15 os símbolos A, B, C, D, E, F, respectivamente. 8 4
Conversão da base 10 Para converter o número N na base 10 com parte inteira e fracionária para a base b: a) Separe a parte inteira da fracionária b) Transforme a parte inteira como indicado anteriormente c) Multiplique sucessivamente a parte fracionária por b, subtraindo do resultado a parte inteira até alcançar a precisão desejada d) Tome os subtraendos para formar a parte fracionária na ordem direta e) Concatene a parte fracionária e inteira 9 Conversão da base 10 Exemplo : Converter o número 653,61 10 para a base 2 0,61 2 = 1,22 0,22 2 = 0,44 1 0,42 2 = 0,88 0 0,88 2 = 1,76 0 1 Resposta: 653,61 10 = 1010001101,1001 2 do exercício anterior 10 5
Conversão da base 10 Exercício 3: Converta o número 63,75 10 para a base 2 com 4 dígitos de precisão Exercício 4: Converta o número 13,78 10 para a base 2 com 4 dígitos de precisão 11 Conteúdo Introdução Conversão da base 10 Conversão para a base 10 Conversão entre as bases 2, 8 e 16 Adição Binária Números Negativos Complemento de 2 Códigos 12 6
Conversão para a base 10 Seja N b =A n A 1 A 0 A -1 A -2 um número dado na base b. Para converter para a base 10 basta calcular: N 10 =A n b n + +A 1 b 1 + A 0 b 0 + A -1 b -1 + A -2 b -2 + 13 Conversão para a base 10 Exercício 5: Converta o número F,21 16 para a base 10 Exercício 6: Converta o número 1011,11 2 para a base 10 14 7
32 16 8 4 2 1.5.25.125 Conversão para a base 10 Procedimento prático para conversão de números da base 2 para base 10: a) Coloque as potências de 2 nas posições correspondentes N 2 = 1 0 1 0 0 1, 1 0 1 b) Some as potências correspondentes ao dígito 1 N 10 =32+8+1+0,5+0,25 = 41,75 15 Conversão para a base 10 Exercício 7: Converta o número 11011,01 2 para a base 10, usando o procedimento proposto no slide anterior 16 8
Conteúdo Introdução Conversão da base 10 Conversão para a base 10 Conversão entre as bases 2, 8 e 16 Adição Binária Números Negativos Complemento de 2 Códigos 17 Conversão entre as bases 2, 8 e 16 Note que cada dígito octal/hexadecimal corresponde a 3/4 dígitos binários, conforme abaixo: 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F octal hexadecimal 18 9
Conversão entre as bases 2, 8 e 16 Um procedimento prático consiste em converter pacotes de dígitos binários de tamanho correspondente partindo da vírgula em 1 dígito octal/hexadecimal. Exemplo: 1 5 1 3, 2 0 0 1 1 0 1 0 0 1 0 1 1, 0 1 0 0 3 4 B, 4 19 Conversão entre as bases 2, 8 e 16 Exercício 8: Converta o número 1110101,01 2 para as bases 8 e 16. Cheque o resultado fazendo a conversão inversa. Se necessário, concatene zeros à esquerda/direita. 20 10
Conteúdo Introdução Conversão da base 10 Conversão para a base 10 Conversão entre as bases 2, 8 e 16 Adição Binária Números Negativos Complemento de 2 Códigos 21 Adição binária Note que há 4 casos básicos na adição 0 0 transporte 0 0 transporte 1 0 transporte 1 1 transporte 0 1 1 1 + 0 + 0 + 1 + 1 0 1 0 1 zero 1 um 1 dois 1 s três 1 s 22 11
Adição binária Exercício 9: Realize a adição dos termos abaixo na base 2. Converta cada termo e o resultado obtido para base 10 e verifique a correição do resultado.. 0 1 0 1 1 1 1 1 + 0 1 1 0 1 0 1 0 23 Conteúdo Introdução Conversão da base 10 Conversão para a base 10 Conversão entre as bases 2, 8 e 16 Adição Binária Números Negativos Complemento de 2 Códigos 24 12
Números negativos Complemento de 2: O bit mais significativo representa o sinal, os demais a magnitude. Para o complemento de 2 de um número: a) Escreva o módulo número negativo na base 2, b) Complemente todos os bits, c) Some 1 ao resultado. Para determinar o módulo de um número em complemento de 2: Use o mesmo procedimento. 25 Números negativos Exemplo: Escreva o número -94 10 em 8 bits em complemento de 2 0 1 0 1 1 1 1 0 = 94 10 1 0 1 0 0 0 0 1 + 1 1 0 1 0 0 0 1 0 =-94 10 26 13
Números negativos Exemplo: Determine o valor decimal do número binário abaixo dado em complemento de 2 1 0 1 0 0 0 1 0 0 1 0 1 1 1 0 1 + 1 0 1 0 1 1 1 1 0 = 94 10 27 Números negativos Exercício 10: Realize a subtração dos números abaixo, somando o minuendo ao complemento de 2 do subtraendo. (0 1 0 1 0 0 0 1) 2 (0 1 0 0 1 1 1 0) 2 Converta os números para base 10 de verifique a correição do resultado. 28 14
Números negativos Exercício 11: Realize a subtração dos números abaixo, somando o minuendo ao complemento de 2 do subtraendo. (0 1 0 0 1 1 1 0) 2 (0 1 0 1 0 0 0 1) 2 Converta os números para base 10 de verifique a correição do resultado. 29 Números negativos Exercício 12: Realize a subtração dos números abaixo, somando o minuendo ao complemento de 2 do subtraendo. (0 1 0 0 1 1 1 0) 2 (1 1 1 1 0 0 0 1) 2 Converta os números para base 10 de verifique a correição do resultado. 30 15
Números negativos Exercício 13: Realize a subtração dos números abaixo, somando o minuendo ao complemento de 2 do subtraendo. (1 1 0 0 1 1 1 0) 2 (1 1 1 1 0 0 0 1) 2 Converta os números para base 10 de verifique a correição do resultado. 31 Observações: Com n dígitos binários (bits) podem-se escrever 2 n valores inteiros sem sinal distintos, especificamente, {0... 2 n }, ou seja, com 8 bits podem-se escrever 256 números: {00000000 2... 11111111 2 }={0 10... 255 10 }. 32 16
Observações: Com n dígitos binários (bits) podem-se escrever 2 n valores inteiros com sinal distintos, especificamente, {-2 n-1... 2 n-1-1}, ou seja, com 8 bits podem-se escrever 256 números: {10000000 2... 01111111 2 }={-128 10... +127 10 }. 33 Conteúdo Introdução Conversão da base 10 Conversão para a base 10 Conversão entre as bases 2, 8 e 16 Adição Binária Números Negativos Complemento de 2 Códigos 34 17
Código BCD Cada dígito decimal é representado por seu equivalente binário em 4 bits. Exemplo : 8 7 4 (decimal) 1000 0111 0100 Exemplo : 9 4 3 (decimal) 1001 0100 0011 Exercício 14: Converta os números BCD (0110100000111001)2 e (011111000001) 2 nos correspondentes decimais. 35 Código Gray Motivação: Considere um cabo de veias paralelas que transportam o valor binário de um contador de 3 bits. Quando a contagem passa de 3 para 4 3 1 0 4 erros 36 18
Código Gray Definição: Só um bit se altera entre dois números consecutivos. Exemplo: Código de Gray de 3 bits 37 Código BCD Transformação binário para Gray 38 19
Representações Binárias Relações: 39 Bytes, Nibbles e Palavras A maioria dos microcomputadores manipulam e armazenam informações e dados binários em grupos de 8 bits. Oito bits equivale a 1 byte. Números binários frequentemente são divididos em grupos de 4 bits. Como um grupo de 4 bits é a metade de um byte, ele foi nomeado nibble. Uma palavra é um grupo de bits que representa uma determinada unidade de informação. O tamanho da palavra pode ser definido como o número de bits na palavra binária em que um sistema digital opera. O tamanho da palavra de um PC é de 8 bytes (64 bits). 40 20
Códigos Alfanuméricos O código alfanumérico representa todos os caracteres e as funções encontrados em um teclado de computador: 26 letras minúsculas e 26 maiúsculas, 10 dígitos, 7 sinais de pontuação, de 20 a 40 outros caracteres. O código alfanumérico mais utilizado é o ASCII - American Standard Code for Information Interchange (Código Padrão Americano para Intercâmbio de Informações). Trata-se de um código de 7 bits: 2 7 = 128 possíveis grupos de código. Pode ser utilizado para transferir informações entre computadores, entre computadores e impressoras e para armazenamento interno. 41 Código ASCII American Standard Code for Information Interchange (Código Padrão Americano para Intercâmbio de Informações) 42 21
Paridade para Detecção de Erros O ruído elétrico pode causar erros durante a transmissão. Flutuações espúrias na tensão ou circulação aparecem em todos os sistemas eletrônicos. Muitos sistemas digitais empregam métodos para detecção de erros e, por vezes, para a correção. Um dos sistemas mais simples e mais utilizados para detecção de erros é o Método de Paridade. 43 Paridade para Detecção de Erros O método de paridade de detecção de erros requer a adição de um bit extra (bit de paridade) para um grupo de códigos. O bit de paridade pode ser um 0 ou 1, dependendo do número de 1s no grupo de código. Existem dois métodos de paridade: par e ímpar. O transmissor e o receptor devem "concordar" sobre o tipo de verificação de paridade utilizado. O método de paridade PAR parece ser o mais utilizado. 44 22
Paridade para Detecção de Erros Método de paridade PAR o número total de bits em um grupo, incluindo o bit de paridade, deve ser um número par. O grupo binário 1 0 1 1 exigiria a adição de um bit de paridade 1, tornando o grupo 1 1 0 1 1. 45 Aplicação Comunicação serial assíncrona. O primeiro bit deve sempre ser um bit de início (lógica 0). Código ASCII é enviado primeiro por LSB e MSB por último. Após o MSB, um bit de paridade é acrescentado para verificar erros de transmissão. A transmissão termina ao enviar um bit de parada (lógica 1). 46 23
Aplicação Exercício: Represente abaixo como baria a tensão numa linha de transmissão assíncro quando se transmite a mensagem alo. Indique na figura a que corresponde cada grupo de bits tempo 47 Fim 48 24