2. Sistemas de numeração



Documentos relacionados
Álgebra de Boole. Sistema de Numeração e Códigos. Prof. Ubiratan Ramos

Representação de Dados

Sistemas Numéricos e a Representação Interna dos Dados no Computador

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

2. Sistemas de Numeração, Operações e Códigos. 2. Sistemas de Numeração, Operações e Códigos 1. Números Decimais. Objetivos.

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos

Sistemas de Numeração. Engenharia da Computação 3 Período Alex Vidigal Bastos

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

Fabio Bento

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores

Organização de Computadores. Cálculos Binários e Conversão entre Bases Aritmética Binária

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio:

Universidade do Minho Departamento de Electrónica Industrial. Sistemas Digitais. Exercícios de Apoio - I. Sistemas de Numeração

Sistemas de Numeração

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Aritmética Binária e. Bernardo Nunes Gonçalves

Eletrônica Digital 1 Módulo1 Capítulo 1 Sistemas Numéricos. Prof. Nilton Costa Junior

Codificação 1. Introdução. C 2 R r {! + codificação

1. Sistemas de numeração

Representação de Dados e Sistemas de Numeração

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Ano letivo: 2012/2013. Sistemas de numeração. Pág.: 1/11. Escola profissional de Fafe SDAC. Trabalho elaborado por: Ana Isabel, nº905 TURMA 7.

Genericamente qualquer sistema de numeração pode ser caracterizado por:

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Exemplo de Subtração Binária

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13

Sistemas de Numerações.

Sistemas de Numeração. Introdução ao Computador 2010/1 Renan Manola

Sistemas de Numeração

SISTEMAS DE NUMERAÇÃO

Sistemas de Numeração. 1 Introdução aos sistemas numeração

3 Sistemas de Numeração:

Representação de Dados

Deste modo, por razões tecnológicas e conceituais, os números binários e a álgebra boole-ana formam a base de operação dos computadores atuais.

Unidade 3: Sistemas de Numeração Conversões Entre Quaisquer Bases e Aritmética em Bases Alternativas Prof. Daniel Caetano

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Capítulo 2. Numéricos e Códigos Pearson Prentice Hall. Todos os direitos reservados.

Introdução à Engenharia de

Conversão de Bases Numéricas

Sistemas de Numeração

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Hardware de Computadores

COMPUTAÇÕES NUMÉRICAS. 1.0 Representação

REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO

Aula 3 - Sistemas de Numeração

Aula 5. Simplificação de funções lógicas (cont.) Sistemas de numeração

Capítulo UM Bases Numéricas

Organização e Arquitetura de Computadores I

Sistemas de Numeração

Sistemas de Numeração e Conversão de Base

ELETRÔNICA DIGITAL 1

Sistemas de Numeração. Bases Numéricas e Conversão entre bases

Notas de aula #1 SISTEMAS NUMÉRICOS

Sistemas de Numeração

Aula 6 Aritmética Computacional

Um circuito comparador permite determinar se dois números binários são iguais, e não o sendo, qual deles é o maior.

Arquitetura de Computadores

centena dezena unidade

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Conversões em Sistemas de Numeração. José Gustavo de Souza Paiva

Circuitos Digitais Cap. 5

CAPÍTULO 6 ARITMÉTICA DIGITAL

Índice de conteúdos. Índice de conteúdos. Capítulo 2. Representação de Números e Erros Representação de números em diferentes bases...

Operações aritméticas

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Sistema de Numeração e Códigos. CPCX UFMS Prof. Renato F. dos Santos

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Plano Curricular de Matemática 3.º Ano - Ano Letivo 2015/2016

Circuitos Combinacionais. Sistemas digitais

Sistemas de numeração

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar

Vamos exemplificar o conceito de sistema posicional. Seja o número 1303, representado na base 10, escrito da seguinte forma:

Lista de Exercícios Sistemas de Numeração

Metas Curriculares do Ensino Básico Matemática 1.º Ciclo. António Bivar Carlos Grosso Filipe Oliveira Maria Clementina Timóteo

Aula 04. Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros

1. Introdução 2. Representação de números 2.1. Conversão Numérica 2.2. Aritmética de ponto flutuante 3. Erros 3.1 Erros Absolutos e Relativos

Sistema de Numeração e Códigos. Sistemas de Informação CPCX UFMS Prof. Renato F. dos Santos

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

2. Representação Numérica

ARQUITETURA DE COMPUTADORES

Disciplina: : ELETRÔNICA DIGITAL

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2

Capítulo 2. Representação de dados em sistemas computacionais

Bases Numéricas e Conversão. DCC Circuitos Digitais

PRONATEC FUNDAMENTOS DE HARDWARE. Prof. Kilmer Pereira

Informática Aplicada à Química. Sistemas de Numeração Representação de Dados

Representação Binária de Números

Apostila para Eletrônica ELETRÔNICA DIGITAL I

Sistemas de Numeração

Capítulo SETE Números em Ponto Fixo e Ponto Flutuante

Tópico 2. Conversão de Unidades e Notação Científica

Sumário. Arquitetura do Universo

Aula 08. Sistemas Numéricos Conversões. Prof. Dr. Dilermando Piva Jr.

ELETRÔNICA. Changed with the DEMO VERSION of CAD-KAS PDF-Editor ( INTRODUÇÃO

Domínio Subdomínio Conteúdos Metas

ICC - Aula 6. Ivan da Silva Sendin. November 17, Bits, portas logicas, flip-flops,... Numeros e Simbolos Exercicios

MATEMÁTICA BÁSICA E CALCULADORA

Conversão de Bases e Aritmética Binária

Transcrição:

2. Sistemas de numeração Neste capitulo vai-se estudar vários sistemas de representação numeração e os quais se designam por sistemas de numeração. Na tabela x apresenta-se os diversos sistemas numéricos que se irão focar. Todo o sistema numérico pressupõe uma base essa base define o número de algarismos ou dígitos. Tabela 17- Sistemas de numeração Sistema Base Dígitos Decimal 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Binário 2 0, 1 Octal 8 0, 1, 2, 3, 4, 5, 6, 7 Hexadecimal 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 2.1. Generalidades Um número numa determinada base é de uma forma genérica composto por 2 partes a parte inteira e a parte fracionaria, em todo e qualquer número tem-se sempre um digito mais significativo (MSD) que corresponde ao digito mais à esquerda e um digito menos significativo (LSD) que corresponde ao digito mais à direita como se pode ver na figura 16 que se segue a qual representa um número N numa determinada base r. Figura 16 - Representação de um número. Qualquer número N, numa determinada base r pode-se decompor num polinómio de potências de base r. Para se perceber melhor veja-se a expressão seguinte:, (Equação 42) A expressão converte qualquer valor numa determinada base para a base 10, onde cada digito (d n...d -j ) tem um valor numérico e um valor posicional (r n...r -j ). Pagina 44

2.2. Sistema decimal Este é o sistema de numeração que normalmente se utiliza na vida. No sistema decimal um número pode ser decomposto em potências de 10, ou seja r será igual a 10 veja-se o exemplo seguinte: 1485,53 1 10 3 4 10 2 8 10 1 5 10 0 5 10 1 3 10 2 2.3. Sistema binário Este sistema é o mais utilizado em sistemas digitais. No sistema binário um número pode ser decomposto em potências de dois e no qual apenas se utilizam dois algarismos (0 e 1). Para uma melhor compreensão veja-se a tabela 18. Tabela 18 Sistema binário conversão para decimal Binário Decimal Pesos 16 8 4 2 1 Potências 2 4 2 3 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 2 0 0 0 1 1 3 0 0 1 0 0 4 0 0 1 0 1 5 0 0 1 1 0 6 0 0 1 1 1 7 0 1 0 0 0 8 0 1 0 0 1 9 0 1 0 1 0 10 0 1 0 1 1 11 0 1 1 0 0 12 0 1 1 0 1 13 0 1 1 1 0 14 0 1 1 1 1 15 1 0 0 0 0 16 Para se ver melhor vai-se utilizar um outro exemplo considerando o seguinte número 11101 em binário e decompondo-o em potências tem-se: 11101 1 2 1 2 1 2 0 2 1 2 29 2.4. Sistema octal O sistema octal não é muito utilizado mas por vezes é útil. Um número na base oito pode ser decomposto em potências de oito. Veja-se o exemplo seguinte: 56433,12 5 8 4 6 8 3 4 8 2 3 8 1 3 8 0 1 8 1 2 8 2 23835,15625 2.5. Sistema hexadecimal O sistema hexadecimal é um sistema bastante importante pois normalmente é neste sistema que se faz o mapeamento de memória (será abordado noutro contexto) em Pagina 45

sistemas digitais. Um número em hexadecimal pode ser decomposto em potências de dezasseis. Veja-se o exemplo seguinte: 71,25 13 16 7 16 1 16 10 16 2 16 5 16 55066,1445 2.6. Conversão de decimal para outros sistemas Do ponto 2.3 ao ponto 2.5 viu-se como converter um número em diferentes bases para a base 10 agora vai-se analisar como converter da base 10 para outras bases. 2.6.1. Conversão de decimal para binário Para se converter um número em decimal para binário tem de se dividir este nas duas partes que o constituem, isto é, na sua parte inteira e na sua parte fracionária e converter a parte inteira e a parte fracionaria separadamente. Para se converter a parte inteira usa-se o método das divisões sucessivas o qual se explica na tabela 19. Para se converter a parte fracionaria usa-se o método das multiplicações sucessivas o qual se explica na tabela 20. Para uma melhor compressão vai-se utilizar um exemplo suponha-se que se quer converter o número 143,75 de decimal para binário, primeiro separa-se a parte inteira da parte fracionária ficando-se com os números 143 e 0,75. Primeiro ira-se converter a parte inteira dividindo-a sucessivamente por 2 até que o cociente seja 1, sendo este o dígito mais significativo do número em binário, verificando se o resto da divisão é um ou zero em todas as divisões anteriores, sendo o primeiro resto obtido o dígito menos significativo do número em binário, veja-se a tabela 19. Para converter a parte fracionária terá de se ir multiplicando sucessivamente por 2 até que o resultado seja zero ou se atinja uma precisão suficiente verificando-se se a parte inteira do resultado de cada multiplicação é um ou zero, caso seja um elimina-se a parte inteira para a próxima multiplicação, veja-se a tabela 20. 10001111,11 2. Das tabelas podemos retirar o número em binário correspondente a 143,75 que é Pagina 46

Tabela 19 Conversão de decimal para binário da parte inteira 143 2 Primeira divisão 03 71 2 Segunda divisão 1 11 35 2 Terceira divisão Resto 1 LSD 1 15 17 2 Quarta divisão Resto 1 1 1 8 2 Quinta divisão Resto 1 0 4 2 Sexta divisão Resto 1 0 2 2 Sétima divisão Resto 0 0 1 Resultado Resto 0 Resto 0 Resut 1 MSD 1 1 1 1 0 0 0 1 O valor terá de se ler da direita para a esquerda 1 0 0 0 1 1 1 1 Tabela 20 Conversão de decimal para binário da parte fracionária 0,75*2 1,5 MSD 0,5*2 1 0,0*2 0 LSD Resultado 1 1 0 Decimal 1*2-1 1*2-2 0,75 De notar que em certas situações não se consegue obter o valor da parte fracionaria exato. 2.6.2. Conversão de decimal para octal O processo de conversão é o mesmo apenas passamos a efetuar divisões sucessivas por oito para a parte inteira e multiplicações sucessivas para a parte fracionária. Veja-se as tabelas 21 e 22 onde se faz a conversão do valor 1435,75 de decimal para octal. 2637,6 8. Das tabelas podemos retirar o número em octal correspondente a 1435,75 que é Tabela 21 Conversão de decimal para octal da parte inteira 1435 8 Primeira divisão 63 179 8 Segunda divisão 75 019 22 8 Terceira divisão 3 3 6 2 Resultado Resto 3 LSD Resto 3 Resto 6 Res 2 MSD 3 3 6 2 O valor terá de se ler da direita para a esquerda 2 6 3 3 Tabela 22 Conversão de decimal para octal da parte fracionária 0,75*8 6 MSD 0,0*8 0 LSD Resultado 6 0 Decimal 6*8-1 0*2-2 0,75 Pagina 47

2.6.3. Conversão de decimal para hexadecimal O processo de conversão é o mesmo apenas passamos a efetuar divisões sucessivas por dezasseis para a parte inteira e multiplicações sucessivas para a parte fracionária. Veja-se as tabelas 23 e 24 onde se faz a conversão do valor 6490,75 de decimal para hexadecimal. Das tabelas podemos retirar o número em hexadecimal correspondente a 6490,75 que é 195A,C0 16. Tabela 23 Conversão de decimal para hexadecimal da parte inteira 6490 16 Primeira divisão 0090 405 16 Segunda divisão 10 085 25 16 Terceira divisão Resto 10 A LSD 05 9 1 Resultado Resto 5 Resto 9 Resut 1 MSD A 5 9 1 O valor terá de se ler da direita para a esquerda 1 9 5 A Tabela 24 Conversão de decimal para hexadecimal da parte fracionária 0,75*16 12=C MSD 0,0*16 0 LSD Resultado C 0 Decimal 12*16-1 0*16-2 0,75 2.7. Conversão de binário para octal e vice-versa Até aqui tem-se considerado que um número é composto por dígitos independentemente da sua base a partir de agora vai-se considerar que sempre que um numero esteja na base dois, ou seja, em binário os seus dígitos serão bits. Analisando-se a relação entre bases verifica-se que a relação entre a base 8 do sistema octal com a base 2 do sistema binário é de 2 3, ou seja, 8= 2 3 através desta relação verifica-se que para representar os oito dígitos que compõem a base do sistema octal precisa-se de 3 bits. Assim para se converter um número de binário para octal basta fazer-se grupos de 3 bits e converte-los para decimal. Para a parte inteira tem de se começar a contar para a esquerda a partir da vírgula. Para a parte fracionaria tem de se começar a contar para a direita a partir da vírgula. Veja-se um exemplo para melhor se perceber o processo convertendo o número 111110,001110 Pagina 48

Tabela 25 Conversão de binário para octal ou de octal para binário Binário 1 1 1 1 1 0, 0 0 1 1 1 0 Grupos 111 110 001 110 Sentido dos grupos Octal 7 6, 1 6 2.8. Conversão de binário para hexadecimal e vice-versa Para se converter de binário para hexadecimal o processo é idêntico à conversão de binário para octal tem de se ter em consideração a relação de bases de hexadecimal e binário a qual é 16=2 4, ou seja, precisamos de 4 bits para representar os dezasseis números o que equivale a se efetuar grupos de 4 bits. Veja-se um exemplo para melhor se perceber o processo convertendo o número 111110,001110. Tabela 26 Conversão de binário para hexadecimal ou de hexadecimal para binário Binário 1 1 1 1 1 0, 0 0 1 1 1 0 Grupos 0011 1110 0011 1000 Sentido dos grupos Hexadecimal 3 (14) E, 3 8 2.9. Conversão de octal para hexadecimal e vice-versa Para se converter uma das duas bases passa-se uma delas para binário e converte-se de seguida para a base pretendida ou seja, de octal para hexadecimal converte-se de octal para binário e depois de binário para hexadecimal. 2.10. Operações aritméticas em binário Já se viu como converter números de umas bases para outras agora está na altura de se estudar como efetuar operações aritméticas em bases diferentes da base 10, deste modo nesta secção e até a secção 2.11 vai-se estudar como efectuar operações aritméticas em binário, octal e hexadecimal. 2.10.1. Soma em binário Vai-se estudar como se fazem somas em binário para tal usa-se a tabuada da soma em binário a qual esta expressa na tabela 27. Tabela 27 Tabuada da soma em binário Operando 1 Operador Operando 2 Resultado Transporte ou carry (E vai) 0 0 0 0 0 + 1 1 0 1 0 1 0 1 1 0 1 Exemplo somar o número 11001 ao número 1000. E vai 1 1 0 0 0 0 Decimal Op1 0 1 1 0 0 1 25 Op2 0 0 1 0 0 0 8 Resultado 1 0 0 0 0 1 33 Pagina 49

2.10.2. Subtração em binário Vai-se estudar como se fazem subtrações em binário para tal usa-se a tabuada da soma em binário a qual esta expressa na tabela 27. Tabela 28 Tabuada da subtração em binário Operando 1 Operador Operando 2 Resultado Transporte ou borrow (E vai) 0 0 0 0 0-1 1 1 1 0 1 0 1 1 0 0 Exemplo subtrair ao número 1010 o número 101. E vai 0 1 0 1 Decimal Op1 10 0 10 0 10 Op2 0 1 0 1 5 Resultado 0 1 0 1 5 2.10.3. Multiplicação em binário Vai-se estudar como se fazem multiplicações em binário para tal usa-se a tabuada da soma em binário a qual esta expressa na tabela 29. Tabela 29 Tabuada da multiplicação em binário Operando 1 Operador Operando 2 Resultado Transporte ou carry (E vai) 0 0 0 0 0 1 0 0 * 1 0 0 0 1 1 1 0 2.11. Operações aritméticas em octal Nesta secção vai-se ver como efetuar as operações em octal, ou seja, como somar, subtrair e multiplicar na base oito. 2.11.1. Soma em octal Soma-se, digito a digito como em decimal, no caso de o resultado ser maior ou igual a 8 subtrai-se 8 e vai 1. 7 8 +3 8 =10 10 > 8 então 10-8=2 e vai 1 então 7 8 +3 8 =12 8 16 8 +5 8 =23 8 Tabela 30 - Soma em octal 1 6 + 5 6+5=11>8 11-8=3 E vai 1 2 3 23 8 2.11.2. Subtração em octal Quando o algarismo de cima é inferior ao de baixo adiciona-se 8 ao algarismo de cima e subtrai-se como em decimal obtendo-se o resultado da subtração e vai 1. 325 8-56 8 = 247 8 Pagina 50

Tabela 31 Subtração em octal 3 2 5 5+8=13 13-6=7 E vai 1-5 6 2+8=10 10-5-1=4 E vai 1 2 4 7 3-1=2 247 8 2.11.3. Multiplicação em octal Todo o processo é idêntico ao caso de decimal, contudo tem de se converter os resultados das multiplicações parciais para octal. 56 8 X 14 8 =1050 8 Tabela 32 - Multiplicação em octal 5 6 x 1 4 3 0 4*6=24 30 8 2 4 + 4*5=20 24 8 6 + 6*1=6 6 8 + 5 + + 5*1=5 5 8 0+1=1 7+1=8 13 0 8-8=0 E vai 1 13-8=5 E vai 1 1 0 5 0 2.12. Operações aritméticas em hexadecimal Nesta secção vai-se ver como efetuar as operações em hexadecimal, ou seja, como somar, subtrair e multiplicar na base dezasseis. 2.12.1. Soma em hexadecimal Soma-se, digito a digito como em decimal, no caso de o resultado ser maior ou igual a 16 subtrai-se 16 e vai 1. 2.12.2. Subtração em hexadecimal Quando o algarismo de cima é inferior ao de baixo adiciona-se 16 ao algarismo de cima e subtrai-se como em decimal obtendo-se o resultado da subtração e vai 1. 2.12.3. Multiplicação em hexadecimal Todo o processo é idêntico ao caso de decimal, contudo tem de se converter os resultados das multiplicações parciais para hexadecimal. 2.12.4. Representação de números inteiros com sinal Até este momento viu-se apenas formas de representação de números positivos, contudo têm-se também números negativos assim surge a necessidade de os representarmos, assim de seguida ira-se analisar algumas formas de representação numérica de números. Pagina 51

2.12.4.1. Código de sinal e valor absoluto Uma solução encontrada para se representar números negativos foi a de juntar ao número em binário um bit à esquerda do bit mais significativo designado por bit de sinal, assim para se representar o número positivo considera-se que o bit de sinal é 0 e para se representar um número negativo considera-se 1. Na tabela 33 apresenta-se os números em binário com 3 bits e um de sinal e da qual se podem retirar as seguintes conclusões: 1. O zero tem duas representações distintas 0000 (0 em decimal) e 1000 ( 0). 2. O maior valor absoluto que pode ser representado é 2 4-1 -1=7 para o caso dos valores representados na tabela, e generalizando-se para um número representado por N bits ira-se ter 2 N-1-1. Esta forma de representação designa-se por código de sinal e valor absoluto e para o qual é difícil se desenvolverem circuitos de operações nomeadamente a adição e subtração de valores para alem do já referido problema respeitante à dupla representação do 0 para melhor se perceber a problemática de efetuar operações considere-se as adições seguintes -12 + 8 e 12 +8. Para se efetuar as operações será preciso tratar o bit de sinal de modo independente assim para a primeira operação vai-se ter o seguinte: Bit sinal Bit 3 Bit 2 Bit 1 Bit 0 Decimal 1 1 1 0 0-12 + 0 1 0 0 0 8 1 0 1 0 0-4 Para a segunda operação obtém-se o seguinte: Bit sinal Bit 3 Bit 2 Bit 1 Bit 0 Decimal 0 1 1 0 0 12 + 0 1 0 0 0 8 0 0 1 0 0 4 Analisando as duas situações deduz-se que ao se tratar de forma independente o primeiro valor está correto mas o segundo está errado sendo deste modo muito difícil conceber circuitos que prevejam todas as situações idênticas à anterior. Pagina 52

Tabela 33- Código de sinal e valor absoluto Bit sinal Bit 2 Bit 1 Bit 0 Decimal 0 1 1 1 7 0 1 1 0 6 0 1 0 1 5 0 1 0 0 4 0 0 1 1 3 0 0 1 0 2 0 0 0 1 1 0 0 0 0 0 1 0 0 0-0 1 0 0 1-1 1 0 1 0-2 1 0 1 1-3 1 1 0 0-4 1 1 0 1-5 1 1 1 0-6 1 1 1 1-7 2.12.4.2. Código complemento de um Uma das vantagens deste método é que o sinal ao contrário do caso do código de sinal e valor absoluto, formando-se os números negativos a partir do complemento dos números positivos, ou seja da sua negação, para uma melhor compreensão veja-se a tabela 34, a qual representa os números compostos por 4 bits e o seu respetivo valor em decimal. Tabela 34 Código complemento de um Bit sinal Bit 2 Bit 1 Bit 0 Decimal 0 1 1 1 7 0 1 1 0 6 0 1 0 1 5 0 1 0 0 4 0 0 1 1 3 0 0 1 0 2 0 0 0 1 1 0 0 0 0 0 1 1 1 1-0 1 1 1 0-1 1 1 0 1-2 1 1 0 0-3 1 0 1 1-4 1 0 1 0-5 1 0 0 1-6 1 0 0 0-7 Como se pode observar na tabela com 4 bits pode-se representar 2 4 = 16 números, o maior valor absoluto é dado por 2 4-1 -1=7, de uma forma genérica tem-se que o maior valor absoluto representável é 2 N-1-1 em que N é o numero de bits, de notar ainda que se continua a ter uma dupla representação para o zero mas em termos de operações matemáticas é mais simples realiza-las pois o sinal deixa de ser tratado separadamente, veja-se a soma seguinte 106 + (-2). Pagina 53

0 1 1 0 1 0 1 0 106 + 1 1 1 1 1 1 0 1-2 1 0 1 1 0 0 1 1 1 + 1 0 1 1 0 1 0 0 0 104 Da operação verifica-se a necessidade de efetuar o transporte do e vai 1 e somalo ao resultado não sendo muito pratico mas aceitável em termos de realização de circuitos que elaboram operações. 2.12.4.3. Código complemento de dois No código de complemento de um verifica-se que se tem ainda uma dupla representação do zero para se eliminar tal ambiguidade surgiu o código complemento de dois o qual é formado a partir do código complemento de um somando-se um no caso da representação de números negativos. Para além da vantagem de não se ter a dupla representação do zero as operações aritméticas se tornam ainda mais simples como se irá ver mais à frente. Neste sistema podem-se representar 2 N números diferentes em que N é o número de bits o maior valor absoluto positivo será 2 N-1-1 e o maior valor absoluto negativo será 2 N-1 como se pode observar na tabela 35 onde se representa a representação em complemento de dois para o caso de 4 bits. Tabela 35- Código complemento de 2 Bit sinal Bit 2 Bit 1 Bit 0 Decimal 0 1 1 1 7 0 1 1 0 6 0 1 0 1 5 0 1 0 0 4 0 0 1 1 3 0 0 1 0 2 0 0 0 1 1 0 0 0 0 0 1 1 1 1-1 1 1 1 0-2 1 1 0 1-3 1 1 0 0-4 1 0 1 1-5 1 0 1 0-6 1 0 0 1-7 1 0 0 0-8 Para se ver como efetuar operações em complemento de dois analise-se a operação 106 + (-2). 0 1 1 0 1 0 1 0 106 + 1 1 1 1 1 1 1 0-2 1 0 1 1 0 1 0 0 0 104 O valor que vai simplesmente se despreza quando se chega ao fim da operação Pagina 54

Como se pode verificar pela operação realizada anteriormente é bem mais simples de realizar assim como de desenvolver circuitos que a implementem quando comparado com o caso do código complemento de um. 2.12.5. Comparação das formas de representação de inteiros com sinal Para se comparar as diversas formas de representação de números inteiros com sinal vai-se efetuar a mesma operação com os três formas de representação e ver as diferenças entre elas. Tabela 36 operações com sinal nas três formas de representação Decimal Binário sinal valor abs. Complemento de um Complemento de dois 7 0 1 1 1 0 1 1 1 0 1 1 1 + -6 + 1 1 1 0 + 1 0 0 1 + 1 0 1 0 1 1 1 1 0 1 1 0 0 0 0 1 0 0 0 1 1 Valor errado Transporte e soma 1 Despreza-se o 1 Sinal tratamento sep. 0 0 0 1 O que fazer?? Com 1 A partir da tabela 36 pode-se tirar as seguintes conclusões: 1. Na representação com o código de sinal valor absoluto o resultado das operações pode ser errado e quando vai um da operação não se sabe o que fazer, o que provoca com que os circuitos sejam difíceis de conceber e sem garantias de um resultado correto. 2. Na representação com o código complemento de um verifica-se que o resultado é o correto mas quando vai um tem de se transportar e somar para se obter o resultado, o que provoca com que os circuitos sejam difíceis de conceber mas com garantias de um resultado correto. 3. Na representação com o código complemento de dois verifica-se que o resultado é o correto e quando vai um apenas se despreza esse bit, o que provoca com que os circuitos sejam simples de conceber, sendo esse o motivo pelo qual é a representação de inteiros com sinal mais utilizada. 2.12.6. Operações matemáticas em complemento de dois Como o complemento de dois é o sistema mais utilizado por esse motivo ira-se analisar como efetuar as operações aritméticas, mais propriamente como somar e subtrair e assim como ver o conceito de Overflow o qual é de extrema importância em sistemas digitais. Pagina 55

2.12.6.1. Soma em complemento de dois A soma em complemento de dois é realizada do mesmo modo que a soma em binário natural mas contudo quando vai um nos últimos bits a se adicionarem desprezase esse bit, de seguida vai-se analisar as situações possíveis. Soma de dois números positivos de 4 bits Bit 3 Bit 2 Bit 1 Bit 0 Decimal 0 1 0 1 5 + 0 0 1 0 2 0 1 1 1 7 Sinal Soma de dois números negativos de 4 bits Bit 3 Bit 2 Bit 1 Bit 0 Decimal 1 0 1 0-6 + 1 1 1 1-1 1 1 0 0 1-7 Desprezado Sinal 1 1 0 6+1 Soma de um número negativo e um positivo de 4 bits Bit 3 Bit 2 Bit 1 Bit 0 Decimal 1 0 1 0-6 + 0 1 1 0 6 1 0 0 0 0 0 Desprezado Sinal 2.12.6.2. Subtração em complemento de dois Para se subtrair em complemento de dois mudamos o sinal do subtrativo (Valor que se quer subtrair) e adicionam-se os valores escritos com o mesmo número de bits, de seguida vai-se dar um exemplo. Exemplo: 9-4=5 01001 c2-00100 c2 =00101 c2 Passos Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Descrição Decimal 0 0 1 0 0 Subtrativo 4 Passo 1 1 1 0 1 1 Complemento de um + 0 0 0 0 1 Mais 1 1 1 1 0 0 Complemento de dois -4 Passo 2 + 0 1 0 0 1 Complemento de dois 9 1 0 0 1 0 1 Complemento de dois 5 Sai Sinal Resultado 2.12.6.3. Noção de Overflow O overflow dá-se quando o resultado de uma determinada operação entre dois números necessita de mais bits para se representar, em complemento de dois é facilmente detetável pela análise dos sinais dos operandos e do resultado da operação, para melhor compreensão veja-se os exemplos que se seguem. Pagina 56

Exemplo 1: Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Decimal 0 1 0 0 1 9 + 0 1 0 0 0 8 1 0 0 0 1 17 Sinal errado Grandeza errada Analisando-se a operação verifica-se que o valor da grandeza está errado pois não corresponde ao valor 17, por outro lado o sinal também está errado pois a soma de dois números positivos será sempre um número positivo e neste caso o resultado é um número negativo. Exemplo 2: Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Decimal 1 0 1 1 1-9 - 0 1 0 0 0 8 1 0 1 1 1 Passar 8 a -8 + 1 1 1 0 0 0-8 + 1 0 1 1 1-9 1 0 1 1 1 1-17 Sai fora Sinal errado Grandeza errada Analisando-se a operação verifica-se que o valor da grandeza está errado pois não corresponde ao valor 17, por outro lado o sinal também está errado pois a subtração de um número negativo com um número soma positivo será sempre um número negativo e neste caso o resultado é um número positivo. Ao se canalizar as duas situações verifica-se que em ambos os casos o sinal do resultado está errado assim em complemento de dois para se detetar um overflow basta analisar os sinais dos operandos e do resultado para se verificar uma situação de overflow. 2.13. Códigos Em sistemas digitais tem-se a necessidade de representar números contudo estes apenas podem ser representados em binário assim terá de se utilizar códigos para representar números de modo a que as pessoas os entendam facilmente assim nesta perspetiva desenvolveram-se códigos. Contudo não se utilizam apenas números na vida quotidiana, utilizam-se também letras e símbolos assim em sistemas digitais tem-se dois tipos distintos de códigos os códigos numéricos que servem para se representar números e os códigos alfanuméricos os quais servem para representar números, letras e símbolos. Para além da necessidade das pessoas entenderem facilmente a representação de números e letras existem outros motivos para se utilizarem códigos que se prendem Pagina 57

com o armazenamento da informação assim como outras situações pertinentes como a deteção de erros em transmissão de informação ou a sua deteção e correção. 2.13.1. Códigos numéricos Os códigos numéricos servem para se representar números um deles é o código binário puro o qual já se falou assim como o código de sinal e valor absoluto, o código complemento para um e o código complemento para dois, destes códigos o mais importante é o código complemento para dois pois é o que nos possibilita representar números inteiros com sinal de uma forma simples assim como efetuar operações matemáticas de uma forma mais simples. Para alem dos códigos numéricos já descritos atrás existem outros códigos numéricos e os quais se vão a passar a descrever assim como quis são as suas aplicações. 2.13.1.1. Código NBCD O código NBCD (Natural Binary Coded Decimal) é um código que utiliza quatro bits para representar os nove dígitos em decimal, com este código pode-se representa números inteiros ou fracionários positivos, assim como efetuar operações matemáticas. A metodologia que se utiliza para a representação numérica é converter cada um dos dígitos em decimal para o seu correspondente em binário natural com 4 bits. Para se converter um número em NBCD para binário efetuam-se grupos de 4 bits confessando a formar-se os grupos da parte inteira (número atrás da virgula) da direita para a esquerda e da parte fracionária (número à frente da virgula) efetuam-se grupos de 4 bits mas da esquerda para a direita. Na tabela x apresenta-se a representação em binário de cada um dos nove dígitos em binário e o seu valor em decimal, na tabela x apresenta-se como converter um número em NBCD para decimal. Pagina 58

Tabela 37 Código NBCD NBCD Bit 1 Bit 2 Bit 1 Bit 0 Decimal 0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 1 0 0 0 8 1 0 0 1 9 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 Invalido 1 1 1 0 1 1 1 1 Tabela 38 Conversão NBCD para decimal e vice-versa NBCD 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1, 0 0 0 0 0 0 0 1 Decimal 2 0 7 9, 0 1 Sentido da conversão 2.13.1.2. Código de Gray O código de Gray é um código de representação numérica e com o qual não se executam operações matemáticas contudo ele é bastante utilizado nomeadamente em conversores analógico para digital e em sensores do tipo encoder. A grande vantagem deste código consiste na sua elevada imunidade a erros de transmissão. Este código é elaborado de modo a que de número para número apenas varie um bit, tal como nos mapas de Karnaugh de quadrícula para quadrícula apenas varia uma variável. Este código também é designado por código refletido pois à medida que se vai aumentando um bit acrescenta-se um zero à esquerda da última tabela e acrescentando um um para gerar a outra parte da tabela reflete-se esta como se fosse um espelho, na tabela 39 apresenta-se a formação do código de Gray desde um bit até 4 bits. Pagina 59

Tabela 39 - Geração do código de Gray Código de Gray Decimal 1 bit 2 bit s 3 bit s 4 bit s Bit 0 Bit 1 Bit 0 Bit 2 Bit 1 Bit 0 Bit 3 Bit 2 Bit 1 Bit 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 2 1 0 0 1 0 0 0 1 0 3 1 1 0 0 1 1 0 4 1 1 1 0 1 1 1 5 1 0 1 0 1 0 1 6 1 0 0 0 1 0 0 7 1 1 0 0 8 1 1 0 1 9 1 1 1 1 10 1 1 1 0 11 1 0 1 0 12 1 0 1 1 13 1 0 0 1 14 1 0 0 0 15 Para se converter do código de Gray para binário natural vai-se construir uma tabela em que se representa o código de Gray com quatro bits e o código em binário com quatro bits e a partir desta retirar as expressões lógicas através de mapas de Karnaugh, isto é, vai-se utilizar como entradas os quatro bits do código de Gray G0, G1, G2 e G3 e considerar as saídas B0, B1, B2 e B3 como as saídas. natural. Na tabela 40 apresenta-se a correspondência código Gray de 4 bits e binário Tabela 40 - Correspondência código Gray de 4 bits e binário natural Gray 4 bits Binário natural 4 bits Decimal G3 G2 G1 G0 B3 B2 B1 B0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 2 0 0 1 0 0 0 1 1 3 0 1 1 0 0 1 0 0 4 0 1 1 1 0 1 0 1 5 0 1 0 1 0 1 1 0 6 0 1 0 0 0 1 1 1 7 1 1 0 0 1 0 0 0 8 1 1 0 1 1 0 0 1 9 1 1 1 0 1 0 1 0 10 1 1 1 0 1 0 1 1 11 1 0 1 0 1 1 0 0 12 1 0 1 1 1 1 0 1 13 1 0 0 1 1 1 1 0 14 1 0 0 0 1 1 1 1 15 Construindo-se os mapas de Karnaugh para B0, B1, B2 e B3 obtém-se: B0 G1 G0 G2 G3 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 Pagina 60

Tirando-se a expressão e simplificando tem-se: 0 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 1 0 2 3 2 1 0 3 2 1 0 3 2 1 0 3 2 0 1 0 1 0 3 2 3 2 1 0 1 0 3 2 3 1 B1 G1 G0 G3 G2 0 1 0 3 2 2 3 1 0 0 0 1 2 3 0 0 01 1 1 10 0 0 0 0 1 1 01 1 1 0 0 1 1 0 0 1 1 10 1 1 0 0 Tirando-se a expressão e simplificando tem-se: B2 G1 G0 G3 G2 1 1 3 2 1 3 2 1 3 2 1 3 2 1 1 3 2 3 2 3 2 3 1 2 1 1 3 2 1 2 3 1 1 2 3 0 0 01 1 1 10 0 0 0 0 0 0 01 1 1 1 1 1 1 0 0 0 0 10 1 1 1 1 Tirando-se a expressão e simplificando tem-se: B3 2 3 3 2 2 2 3 2 G1 G0 G3 G2 0 0 0 1 1 1 10 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 3 3 Pagina 61

Das expressões lógicas anteriores pode-se construir o logigrama com portas lógicas para a conversão do código de Gray para binário natural, o qual se apresenta na figura 17. Figura 17- Logigrama da conversão do código de Gray para binário natural Para se converter do código binário para o código de Gray procede-se da mesma forma mas as entradas passam a ser B0, B1, B2 e B3 e as saídas serão G0, G1, G2 e G3 construindo-se os mapas de Karnaugh para G0, G1, G2 e G3: G0 B1 B0 B2 B3 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 Tirando-se a expressão e simplificando tem-se: G1 0 0 1 0 1 0 0 1 B1 B0 B3 B2 0 0 01 1 1 10 0 0 0 0 1 1 01 1 1 0 0 1 1 1 1 0 0 10 0 0 1 1 Pagina 62

Tirando-se a expressão e simplificando tem-se: G2 B0 B1 B3 B2 1 1 2 2 1 1 1 2 0 0 01 1 1 10 0 0 0 0 0 0 01 1 1 1 1 1 1 0 0 0 0 10 1 1 1 1 Tirando-se a expressão e simplificando tem-se: G3 2 3 3 2 2 2 3 2 B1 B0 B3 B2 0 0 0 1 1 1 10 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 3 3 Das expressões lógicas anteriores pode-se construir o logigrama com portas lógicas para a conversão de binário natural para código de Gray, o qual se apresenta na figura 18. Figura 18- Logigrama da conversão de binário natural para código de Gray Pagina 63

2.13.2. Códigos alfanuméricos Os códigos alfanumérico permitem a representação de números, letras e símbolos os mais importantes e os quais se irão abordar são os códigos ASCII e o código ASCII estendido. 2.13.2.1. Código ASCII O código ASCII ou seja o American Standard Code for Information Interchange traduz-se por Código Americano Standard para a Troca de Informações, este código é composto por 7 bits ou seja pode-se representar 128 símbolos diferentes, sendo algumas destas representações correspondentes a instruções de transmissão de informação. Na figura 19 apresenta-se a correspondência entre octal hexadecimal e decimal de cada um dos símbolos do código ASCII. Figura 19- código ASCII 2.13.2.2. Código ASCII estendido O código ASCII estendido é um código que em vez de utilizar 7 bits utiliza 8 duplicando assim o número de símbolos que se podem utilizar sendo os primeiros símbolos os mesmos dos representados pelo código ASCII e estando a correspondência de decimal e hexadecimal com o símbolo dos restantes 128 símbolos represados na figura 20. Pagina 64

Figura 20 - restantes 128 símbolos do código ASCII estendido 2.14. Deteção e correção de erros Todo e qualquer sistema de transmissão de informação na forma digital, está sujeito a erros, esses advêm de existirem perturbação nos sinais transmitidos, tais perturbações podem ser devidas a atenuação do sinal assim como ao aparecimento de ruído no sinal o qual não se consegue eliminar como o caso do ruído térmico. Desta forma torna-se necessário utilizar técnicas de deteção e correção de erros de entre as muitas técnicas existentes vai-se apenas ver a técnica mais simples de deteção de erros que é o método da paridade que se descreve de seguida. 2.14.1. Método da paridade O método de paridade é o método mais simples de deteção de erros de transmissão este método apenas consegue detetar um erro numa palavra transmitida ou no caso de existirem um numero de erros impar na palavra transmitida, de notar ainda que esta técnica apenas nos permite detetar erros em numero impar na transmissão e não consegue corrigi-los. Temos duas formas para aplicar este método a paridade par em que à mensagem transmitida é acrescentado um bit designado por bit de paridade, sendo este bit 1 no caso do número de uns ser impar e zero no caso do número de uns da mensagem ser par. O outro método é o de paridade impar sendo este exatamente implementado da mesma forma que o método de paridade par mas desta feita o número de uns na mensagem será impar ou seja quando o número de uns é par o bit de paridade a acrescentar à mensagem terá o valor zero e no caso do número de uns ser par terá o valor de 1. Pagina 65