Prévia do material em texto
Unidade 1 - Introdução aos Sistemas Digitais: Sistemas de Numeração e Códigos Thainan Santos Theodoro Universidade Federal de Ouro Preto João Monlevade, MG email: thainan.theodoro@ufop.edu.br thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 1 / 38 Introducao Como são usados os sistemas numéricos na Eletrônica Digital? Decimal Hexadecimal BCD GrayBinario Códigos Sistemas Numéricos Figura 1: Digrama com aplicações dos sistemas numéricos na Eletrônica Digital. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 2 / 38 Conversão entre sistemas numéricos Conceitos - sistemas de numeração Sistema de numeração posicional: Decimal; ex: 41 (4 dezenas e 1 unidade) Binário; Hexadecimal. Valor = n−1∑ i=0 diBi. (1) di é o í-ésimo dígito, contando da esquerda para a direita; B é a base; n é a quantidade de dígitos do número. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 3 / 38 Conversão entre sistemas numéricos Conceitos - sistemas de numeração O número de símbolos utilizados varia de acordo com a base aplicada, ou seja, um sistema de base N utiliza N símbolos. Por exemplo, o sistema binário utiliza apenas os dígitos 0 e 1, enquanto que, o sistema octal usa os números de 0 a 7. Contudo, para sistemas de base maior que 10, novos símbolos são necessários. O sistema hexadecimal usa símbolos de 0 a F. Tabela 1: Representação de valores em diferentes bases. Valor (10) 0 ... 10 11 12 13 14 15 Valor (2) 0000 ... 1010 1011 1100 1101 1110 1111 Valor (16) 0 ... A B C D E F thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 4 / 38 Conversão entre sistemas numéricos Conversão de base - binário para decimal A) Sistema posicional: Ex: Calcule o equivalente decimal: 1011 01012 thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 5 / 38 Conversão entre sistemas numéricos Conversão de base - binário para decimal Solução Calcule o equivalente decimal:1011 01012 thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 6 / 38 Conversão entre sistemas numéricos Questões para revisão (binário para decimal) 1 Converta o binário 1000 1101 10112 em seu equivalente decimal somando os produtos dos dígitos e pesos. 2 Qual é o peso do MSB de um número de 16 bits? 3 Repita a conversão na Questão 1 usando o método double-dabble. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 7 / 38 Conversão entre sistemas numéricos Conversão de base - decimal para binário Por exemplo, como ficaria a conversão do número 10112 para o sistema decimal? 10112 = 1 × 20 + 1 × 21 + 0 × 22 + 1 × 23 = 1 + 2 + 0 + 8 = 1110 E o processo reverso, como faz (Divisões sucessivas! )? 11 5 2 1 0 2 2 2 2 10 4 2 0 1 1 0 1 (MSB) (LSB) thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 8 / 38 Conversão entre sistemas numéricos Conversão de base - decimal para binário Por exemplo, como ficaria a conversão do número 10112 para o sistema decimal? 10112 = 1 × 20 + 1 × 21 + 0 × 22 + 1 × 23 = 1 + 2 + 0 + 8 = 1110 E o processo reverso, como faz (Divisões sucessivas! )? 11 5 2 1 0 2 2 2 2 10 4 2 0 1 1 0 1 (MSB) (LSB) thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 8 / 38 Conversão entre sistemas numéricos Conversão de base - decimal para binário Exemplo: Converta 2510 para binário. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 9 / 38 Conversão entre sistemas numéricos Conversão de base - decimal para binário Exemplo: Converta 2510 para binário. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 9 / 38 Conversão entre sistemas numéricos Questões para revisão (decimal para binário) 1 Converta 8310 em binário usando os dois métodos apresentados (Ver Tocci, 2007 ). 2 Converta 72910 em binário usando os dois métodos apresentados. Verifique sua resposta, fazendo a conversão de volta para decimal. 3 Quantos bits são necessários para contar até 1 milhão em decimal? thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 10 / 38 Conversão entre sistemas numéricos Sistema Hexadecimal Figura 2: Sistema de contagem hexadecimal. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 11 / 38 Conversão entre sistemas numéricos Conversão de base - Hexa para decimal Por exemplo, como ficaria a conversão do número 21C16 para o sistema decimal? 21C16 = C × 160 + 1 × 161 + 2 × 162 = 12 + 16 + 512 = 54010 Exemplo: converta o numero FF16 para o sistema decimal. FF16 = F × 160 + F × 161 = 15 + 16 × 15 = 25510 thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 12 / 38 Conversão entre sistemas numéricos Conversão de base - Hexa para decimal Por exemplo, como ficaria a conversão do número 21C16 para o sistema decimal? 21C16 = C × 160 + 1 × 161 + 2 × 162 = 12 + 16 + 512 = 54010 Exemplo: converta o numero FF16 para o sistema decimal. FF16 = F × 160 + F × 161 = 15 + 16 × 15 = 25510 thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 12 / 38 Conversão entre sistemas numéricos Conversão de base - Hexa para decimal Por exemplo, como ficaria a conversão do número 21C16 para o sistema decimal? 21C16 = C × 160 + 1 × 161 + 2 × 162 = 12 + 16 + 512 = 54010 Exemplo: converta o numero FF16 para o sistema decimal. FF16 = F × 160 + F × 161 = 15 + 16 × 15 = 25510 thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 12 / 38 Conversão entre sistemas numéricos Conversão de base - decimal para hexa Como ficaria a conversão do número 54010 para o sistema hexa? 11 5 2 1 0 2 2 2 2 10 4 2 0 1 1 0 1 (MSB) (LSB) 540 33 2 0 16 16 16 528 32 0 12 1 2 (C) thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 13 / 38 Conversão entre sistemas numéricos Conversão de base - decimal para hexa Como ficaria a conversão do número 54010 para o sistema hexa? 11 5 2 1 0 2 2 2 2 10 4 2 0 1 1 0 1 (MSB) (LSB) 540 33 2 0 16 16 16 528 32 0 12 1 2 (C) thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 13 / 38 Conversão entre sistemas numéricos Conversão de base - decimal para hexa Como ficaria a conversão do número 42310 para o sistema hexa? thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 14 / 38 Conversão entre sistemas numéricos Conversão de base - decimal para hexa Como ficaria a conversão do número 42310 para o sistema hexa? thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 14 / 38 Conversão entre sistemas numéricos Conversão de base – binário, octal e hexadecimal A conversão de base permite expressar o mesmo valor em diferentes representações; Em aplicações digitais, é conveniente usar outras bases que não seja a decimal. As bases mais empregas são a binária, octal e hexadecimal. Memória Unidade de controle Unidade lógica e aritmética (ULA) Entrada Saída 0 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0[ [ [ [ [[[[[[ 84B1 015510 Octal Binário Hexadecimal Figura 3: Representação do valor 6984(10) em diferentes bases. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 15 / 38 Conversão entre sistemas numéricos Conversão de base Como ficaria a conversão para Octal e Hexadecimal do seguinte número binário? Memória Unidade de controle Unidade lógica e aritmética (ULA) Entrada Saída 0 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0[ [ [ [ [[[[[[ 84B1 015510 Octal Binário Hexadecimal 1 1 0 0 1 0 1 0 1 0 Octal Binário Hexadecimal thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 16 / 38 Conversão entre sistemas numéricos Conversão de base Comoficaria a conversão para Octal e Hexadecimal do seguinte número binário? A23 251 4 thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 17 / 38 Conversão entre sistemas numéricos Questões para revisão (hexa, octa, binário e decimal) 1 Converta 24CE16 em decimal. 2 Converta 311710 em hexa e, em seguida, em binário. 3 Converta 1001 0111 1011 01012 em hexa. 4 Escreva os próximos quatro números da seguinte contagem hexa: E9A, E9B, E9C, E9D, ?, ?, ?, ?. 5 Converta 352716 em binário. 6 Que faixa de valores decimais pode ser representada por números hexa de quatro dígitos? thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 18 / 38 Conversão entre sistemas numéricos Código BCD - Binary-coded-decimal BCD é uma maneira muito utilizada de apresentar números decimais em formato binário. Combina características dos sistemas decimal e binário. Cada dígito é convertido em um binário equivalente. BCD não é um sistema numérico. É um número decimal com cada dígito codificado para seu equivalente binário de 4 bits; A principal vantagem do BCD é a relativa facilidade de conversão para e a partir do decimal. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 19 / 38 Conversão entre sistemas numéricos Exemplo de conversão para BCD Converta o número 87410 para BCD, lembrando que cada dígito decimal é representado por 4 bits. 11 5 2 1 0 2 2 2 2 10 4 2 0 1 1 0 1 (MSB) (LSB) 540 33 2 0 16 16 16 528 32 0 12 1 2 (C) Inverta o processo para converter o BCD para decimal. 11 5 2 1 0 2 2 2 2 10 4 2 0 1 1 0 1 (MSB) (LSB) 540 33 2 0 16 16 16 528 32 0 12 1 2 (A) thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 20 / 38 Conversão entre sistemas numéricos Exemplo de conversão para BCD Converta o BCD 0110 1000 0011 1001 em seu equivalente decimal. Converta o BCD 0111 1100 0001 em seu equivalente decimal. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 21 / 38 Conversão entre sistemas numéricos Resumo sobre sistemas de numeração O sistema de numeração hexadecimal é usado em sistemas digitais como alternativa para a representação binária (Muito fácil de errar a escrita de um número grande em binário); Conversão entre hexa e binário, cada dígito hexa corresponde a quatro bits; O método de divisões sucessivas pode ser aplicado para converter números decimais em binários ou hexadecimais; O código BCD para um número decimal é formado convertendo-se cada dígito decimal em seu equivalente binário de quatro bits. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 22 / 38 Conversão entre sistemas numéricos Código Gray O Código Gray é usado em aplicações em que os números se alteram rapidamente; Apenas um bit muda de valor na contagem. CAPÍTULO 2 • SISTEMAS DE NUMERAÇÃO, OPERAÇÕES E CÓDIGOS ■ 105 Uma Aplicação Um diagrama simplificado de um mecanismo codificador de posição de eixo de três bits é mostra- do na Figura 2–7. Basicamente, existem três anéis que são segmentados em oito setores. Quanto mais setores existirem, maior será a precisão do posicionamento que pode ser representada, porém estamos usando neste exemplo apenas oito para fins de ilustração. Cada setor de cada anel é fixa- do a uma tensão de nível alto ou a uma tensão de nível baixo para representar 1s e 0s. Um 1 é in- dicado por um setor colorido e um 0 por um setor branco. À medida que o eixo gira no sentido an- ti-horário ao longo dos 360º, os oito setores se movem sob três escovas produzindo uma saída bi- nária de 3 bits que indicam a posição do eixo. EXEMPLO 2–37 (a) Converta o número binário 11000110 para código Gray. (b) Converta o código Gray 10101111 para binário. Solução (a) De binário para código Gray: (b) De código Gray para binário: Problema relacionado (a) Converta o binário 101101 para código Gray. (b) Converta o código Gray 100111 para binário. 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 ↓↓ ↓ ↓ ↓↓ ↓ ↓ ↓ ↓ ↓↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 1 0 1 0 0 1 0 1 1 − +→1 − +→ 0 − +→ 0 − +→ 0 − + →1 − +→ 1 − + → 0 3 bits binário 3 bits código Gray (a) Binário (b) Código Gray 100101 111 110 011010 000 001 111110 101 100 010011 000 001 Escovas de contato em um cursor fixo ao longo da superfície dos anéis condutivos girantes � FIGURA 2–7 Uma ilustração simplificada de como o código Gray resolve o problema de erro em codificadores da po- sição de eixo. Figura 4: Uma ilustração simplificada de como o código Gray resolve o problema de erro em codificadores da posição de eixo thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 23 / 38 Conversão entre sistemas numéricos Conversão Código Binário para Código Gray 1 Use o binário mais significativo (MSB) como gray mais significativo (MSB) → G2 = B2; thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 24 / 38 Conversão entre sistemas numéricos Conversão Código Binário para Código Gray 2 Compare o binário mais significativo (B2) com o próximo binário (B1) ; Se B2 = B1 ∴ G1 = 0; Se B2 ̸= B1 ∴ G1 = 1; thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 25 / 38 Conversão entre sistemas numéricos Conversão Código Binário para Código Gray 3 G0 pode ser encontrado comparando (B1) com o (B0) ; Se B1 = B1 ∴ G0 = 0; Se B1 ̸= B0 ∴ G0 = 1 ; thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 26 / 38 Conversão entre sistemas numéricos Conversão do Gray para o Código Binário 1 E o contrário, como fica? thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 27 / 38 Conversão entre sistemas numéricos Códigos Alfanuméricos 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: 27 = 128 possíveis grupos de código. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 28 / 38 Conversão entre sistemas numéricos Desafio - Tabela ASCII Fazer um codigo em python. Requisitos: Receber um caractere no formato string. Imprimir na tela o caractere; Imprimir na tela o código decimal; Imprimir na tela o código hexa; Imprimir na tela o código binario; Exemplo: Q = 8110 = 5116 = 0101 00012 thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 29 / 38 thain Typewriter https://colab.research.google.com/drive/1D62VnXQxPJAO8XjCFFSWypwFwnob1AR- thain Typewriter https://www.ascii-code.com/ Conversão entre sistemas numéricos Detecção de erros pelo método de paridade A movimentação de dados e códigos binários de um local para outro é a operação mais frequentemente realizada em sistemas digitais. Voz digitalizada sobre um link de micro-ondas. Armazenamento de dados de discos magnéticos e ópticos. Comunicação entre sistemas de computador através de linhas telefônicas. O ruído elétrico pode causar erros durante a transmissão. Figura 5: Exemplo de um erro causado por um ruído em uma transmissão digital. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 30 / 38 Conversão entre sistemas numéricos Detecção de erros pelo método de paridade Método de paridade PAR - o número total de bits ALTO (um) em um grupo, incluindo o bit de paridade, é 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. Similarmente, o método de paridade ÍMPAR - o número total de bits ALTO (um) em um grupo, incluindo o bit de paridade, deve ser um número ímpar. Os métodos de paridade funcionarão caso ocorra erro em dois bits? thainan.theodoro@ufop.edu.br(UFOP) Unidade 1 - Introdução aos Sistemas Digitais 31 / 38 Conversão entre sistemas numéricos Detecção de erros pelo método de paridade O bit de paridade torna-se uma parte da palavra código. Adicionar um bit de paridade ao código ASCII de 7 bits produz um código de 8 bits. Escreva a palavra HELLO, usando ASCII e bit de paridade. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 32 / 38 Conversão entre sistemas numéricos Detecção de erros pelo método de paridade O bit de paridade torna-se uma parte da palavra código. Adicionar um bit de paridade ao código ASCII de 7 bits produz um código de 8 bits. Escreva a palavra HELLO, usando ASCII e bit de paridade. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 32 / 38 Conversão entre sistemas numéricos Transmitindo com código ASCII - Aplicações O método de transferência é chamado de comunicação de dados assíncronos (sem o clock ). Ao transmitir-se caracteres ASCII, deve-se contar ao receptor que um novo personagem está chegando. Uma tabela de caracteres ASCII deve ser “emoldurada” para que o receptor saiba onde os dados começam e onde terminam. 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). thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 33 / 38 Conversão entre sistemas numéricos Transmitindo com código ASCII - Aplicações Transmissão assíncrona típica de um código ASCII de 7 bits para o símbolo # Figura 6: Dados seriais assíncronos com paridade par. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 34 / 38 Conversão entre sistemas numéricos Poder do armazenamento digital - Aplicações Um CD-ROM típico pode armazenar 650 megabytes de dados digitais. Sendo 1M = 220 , quantos bits de dados um CD-ROM pode guardar? Solução: Lembre-se de que um byte corresponde a 8 bits. Portanto, 650 megabytes equivalem a: 650 × 220 × 8 = 5.452.595.200 bits. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 35 / 38 Conversão entre sistemas numéricos Poder do armazenamento digital - Aplicações Um CD-ROM típico pode armazenar 650 megabytes de dados digitais. Sendo 1M = 220 , quantos bits de dados um CD-ROM pode guardar? Solução: Lembre-se de que um byte corresponde a 8 bits. Portanto, 650 megabytes equivalem a: 650 × 220 × 8 = 5.452.595.200 bits. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 35 / 38 Conversão entre sistemas numéricos Poder do armazenamento digital - Aplicações Um computador típico pode armazenar 1 terabyte de dados digitais, quantos bits de dados ele pode guardar? Solução: 1 terabyte equivale a: 1 × 240 × 8 = 8.796.093.022.208 bits. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 36 / 38 Conversão entre sistemas numéricos Poder do armazenamento digital - Aplicações Um computador típico pode armazenar 1 terabyte de dados digitais, quantos bits de dados ele pode guardar? Solução: 1 terabyte equivale a: 1 × 240 × 8 = 8.796.093.022.208 bits. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 36 / 38 Conversão entre sistemas numéricos Seções dos livros abordados nesta aula Tocci - 2.1, 2.2, 2.3, 2.4, 2.5, 2.8, 2.9 e 2.10 Floyd - 2-1, 2-2, 2-3, 2-8, 2-9, 2-10, 2-11, 2-12 thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 37 / 38 Conversão entre sistemas numéricos Referências [1] Tocci, Ronald J., Neal S. Widmer, and Gregory L. Moss. Sistemas digitais: princípios e aplicações. Prentice Hall, 2007, 10ª edição. [2] Floyd, T. "Sistemas Digitais: Fundamentos e Aplicações."Editora Bookman, 2007. thainan.theodoro@ufop.edu.br (UFOP) Unidade 1 - Introdução aos Sistemas Digitais 38 / 38 Introducao Conversão entre sistemas numéricos