01 Sistemas de numeração e códigos. v0.2

Documentos relacionados
01 Sistemas de numeração e códigos

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

Aula de hoje. Códigos numéricos. Códigos binários. Armazenamento de dados. Armazenamento de dados. Armazenamento de dados

Sistemas de Numeração

SSC512 Elementos de Lógica Digital. Sistemas de Numeração. GE4 Bio

Sistemas Digitais Representação Digital de Informação

Circuitos Digitais I. Notas de Aula. Sistemas de Representação. Bases e Códigos. Bases

Sistemas de Numeração e Códigos

Baseado nos slides de Anna Tostes SISTEMA NUMÉRICO

Representação Digital da Informação II

Operações com números binários

Sistemas de Numeração

Unidade III. Sistemas Numéricos e o Computador

Sistema Supervisório - IHM

Lógica Matemática Elementos de Lógica Digital. Sistema de numeração 09/08/2016 1

S is temas numéricos e a Repres entação Interna dos Dados no Computador

Informática I. Aula 6. Aula 6-18/09/2006 1

Sistemas Digitais Representação Digital de Informação

Circuitos Lógicos Aula 5

MAT115 Introdução ao Processamento de Dados Professor: Ibirisol Fontes Ferreira DCC: Departamento de Ciência da Computação

Sistemas Digitais Módulo 3 Codificações BCD, Gray e ASCII e Números Fracionários

Sistemas de Numeração. Tiago Alves de Oliveira

SISTEMAS DE NUMERAÇÃO (Unidade 2)

Introdução à Computação: Sistemas de Numeração

PCS 3115 Sistemas Digitais I Códigos Prof. Dr. Marcos A. Simplicio Jr.

Capítulo V Sistemas Numéricos

Números são números, letras são números e sinais de pontuação, símbolos e até mesmo as instruções do próprio computador são números.

ELETRÔNICA DIGITAL Aula 1- Sistemas de Numeração. Prof.ª Msc. Patricia Pedroso Estevam Ribeiro

Circuitos Lógicos. Prof. Odilson Tadeu Valle

HARDWARE SISTEMA NUMÉRICO E CODIFICAÇÃO. Wagner de Oliveira

X. B Y Base do sistema de numeração Dígito do número em questão

FACULDADE PITÁGORAS PRONATEC

Introdução à Computação

Códigos, Portas Lógicas e Comportamento Elétrico

Capacidade de Armazenamento. Bit. Binário para Decimal. Decimal para Binário. Operações Aritméticas no Sistema binário.

Circuitos Lógicos. Capítulo 9 Aritmérica Digital: Operações e Circuitos

Sistemas Digitais (SD) Sistemas de Numeração e Códigos

Base: número de símbolos empregados no sistema numérico.

Matemática para Ciência de Computadores

Sistemas de Numeração. Exemplos de Sistemas de Numeração (1) Exemplos de Sistemas de Numeração (2) Sistemas de Numeração

SISTEMAS DE NUMERAÇÃO. Introdução à Ciência da Computação ICC0001

Aritmética Binária e Complemento a Base. Introdução ao Computador 2010/1 Renan Manola

Objetivo. Sistemas de Numeração e Códigos. Apresentar técnicas de representação e converção de números em diversos sistemas de numeração.

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

SISTEMAS DIGITAIS (SD)

Binário Decimal

Prof. Leonardo Augusto Casillo

Índice. 1.2 Sistemas Numéricos em uma Base B Qualquer

Sistemas Numéricos - Aritmética. Conversão de Bases. Prof. Celso Candido ADS / REDES / ENGENHARIA

Infraestrutura de Hardware

Sistemas de Numeração

ARQUITETURA DE COMPUTADORES

REPRESENTAÇÃO DE DADOS. Prof. Maicon A. Sartin

Arquitetura e Organização de Computadores. Professor: Lucas Cambuim Aula: Conversão de Bases e Aritmética Computacional

Introdução à Computação

Aula 2 - Sistemas de Numeração

Sistemas de Computação

Aula Expositiva 2. DCC 001 Programação de Computadores. 2º Semestre de 2011 Prof. Osvaldo Carvalho UFMG DCC

Eletrônica Digital Apresentação e Cap.1 PROF. EDUARDO G. BERTOGNA UTFPR / DAELN

Fundamentos de TI. Aula08_Sistemas Numéricos.doc 1

CAPÍTULO 1 - SISTEMAS DE NUMERAÇÕES

Fabio Bento

Arquitetura de Computadores I

ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AOS SISTEMAS DE NUMERAÇÃO

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES REPRESENTAÇÃO NUMÉRICA. Cristina Boeres

Circuitos Digitais. Conteúdo. Soma de Números Binários. Soma de Números Binários. Exemplos. Exemplos. Aritmética Binária

ELE 0316 / ELE 0937 Eletrônica Básica

SISTEMAS DE NÚMERAÇÃO. Números decimais

SEBENTA de Sistemas de Numeração

Computador: sinais elétricos Números formados por 0s e 1s b

Capítulo 04 : Sistemas Numéricos

Engenharia Civil. Representação da Informação. Introdução à Computação

1 Introdução à Lógica Digital. Arquitectura de Sistemas Computacionais

1 bases numéricas. capítulo

Conversão de Bases. Introdução à Organização de Computadores 5ª Edição/2007 Página 54. Sistemas Numéricos - Aritmética. Prof.

Circuitos Digitais. Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional

Unidade 2: Sistemas de Numeração Numerais Binários e Bases de Potência de Dois Prof. Daniel Caetano

Aula 2 - Sistemas de Numeração

Sistemas de Numeração. Sistemas de Numeração. Sistemas de Numeração. RUIDO em Sistemas Computacionais. Arquiteturas de Computadores

SISTEMAS DE NUMERAÇÃO

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AOS SISTEMAS DE NUMERAÇÃO

Unidade III ORGANIZAÇÃO DE COMPUTADORES. O que quer dizer 14?

Eletrônica Digital. Instituto Federal de Santa Catarina Campus São José. Área de Telecomunicações. Sistema de Numeração

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AOS SISTEMAS DE NUMERAÇÃO

MATA49 Programação de Software Básico

Técnico em Eletrônica Módulo I Eletrônica Digital (ED) - Prof. Samuel M. B. Cavalcante

Curso de Aritmética Capítulo 1: Conjuntos Numéricos, Operações Básicas e Fatorações

1 Introdução à Lógica Digital

Arquitetura de computadores BASE NUMÉRICAS

Aula 4: Bases Numéricas

Aula 9. Aritmética Binária. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Computação e Programação

Dessa forma pode-se transformar qualquer número em qualquer base para a base 10.

Representação em nível de máquina

Eletrônica Digital. Conversão de base e operações aritméticas com números binários. Professor: Francisco Ary

Unidade 3: Sistemas de Numeração Numerais Binários e Bases de Potência de Dois Prof. Daniel Caetano

Binários: Operações matemáticas

Transcrição:

01 Sistemas de numeração e códigos v0.2

Conteúdo Sistemas de numeração: Decimal Binário Octal Hexadecimal Conversão entre diferentes bases Números negativos Aritmética Adição Subtração Multiplicação Códigos BCD Gray ASCII 05 November 2014 Sistemas Digitais 2

Sistemas de numeração e códigos I Vivemos cercados por códigos Os seres humanos são construídos de acordo com um código o código genético: ADN Linguagens naturais podem ser vistas como código E agrupadas por grupos onde os códigos são semelhantes Ex. O português pertence às línguas românicas ou latinas (leite, latte, leche, du lait) Outras pertencem ao grupo das línguas germânicas (Milch, milk, melk) 05 November 2014 Sistemas Digitais 3

Sistemas de numeração e códigos II Os computadores e sistemas de controlo comunicam através de números (ou códigos numéricos) não pode haver ambiguidades! Como é mais simples construir circuitos que podem operar com dois níveis de sinal: zero e um os computadores representam a informação e efetuam operações aritméticas ou outras no sistema binário 05 November 2014 Sistemas Digitais 4

Sistema de numeração Romana I Os sistemas de numeração podem ser simbólicos É o caso do sistema de numeração Romana: Os números são representados por sequências de símbolos de acordo com algumas regras 05 November 2014 Sistemas Digitais 5

Sistema de numeração Romana II Sequências de símbolos: I, II, III, IV, V, VI, VII, VIII, IX, X, XI 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11 É permitida a repetição de alguns símbolos consecutivos até um máximo de 3: XX=20 XXX=30 CC=200 CCC=300 Símbolos que se podem repetir: I, X, C, M (as potências de 10) Símbolos que não se podem repetir: V, L e D. 05 November 2014 Sistemas Digitais 6

Sistema de numeração Romana III O valor de uma sequência de símbolos é obtida adicionando o valor dos símbolos Exceto quando um símbolo de valor inferior está antes de outro símbolo. Neste caso representa uma subtração: CM = 900 XC = 90 (apenas o símbolo de valor imediatamente inferior a I, X ou C) VC = 95 = XCV IC = 99 = XCIX (assim não há ambiguidade) Exemplo: 1996 = MCMXCVI Com estas regras qual o maior número que se pode representar? 05 November 2014 Sistemas Digitais 7

Sistema de numeração Romana III O valor de uma sequência de símbolo é obtida adicionando o valor dos símbolos Exceto quando um símbolo de valor inferior está antes de outro símbolo. Neste caso representa uma subtração: CM = 900 XC = 90 VC = 95 = XCV IC = 99 = XCIX (assim não há ambiguidade) Exemplo: 1996 = MCMXCVI Com estas regras qual o maior número que se pode representar? MMMDCCCLXXXVIII (3888) 05 November 2014 Sistemas Digitais 8

Sistema de numeração Romana IV MMMDCCCLXXXVIII (3888) De acordo com as regras as repetições são limitadas a 3 símbolos E se não houvessem regras? Poderíamos representar números maiores Se bem que números grandes tivessem uma longa sequência de símbolos MMMMMMMMMDCCC (9300) onando um traço por cima de um símbolo multiplica-se o valor por mil 05 November 2014 Sistemas Digitais 9

Sistema de numeração Romana IV MMMDCCCLXXXVIII (3888) De acordo com as regras as repetições são limitadas a 3 símbolos E se não houvesse esta regra? Poderíamos representar números maiores Se bem que números grandes tivessem uma longa sequência de símbolos MMMMMMMMMDCCC (9300) Para reduzir o número de símbolos, adicionando um traço por cima de um símbolo multiplica-se o valor por mil _ M = 1 000 000 05 November 2014 Sistemas Digitais 10

Sistema de numeração Romana V Mas o problema ao eliminar regras não é apenas este Se eliminarmos as regras poderemos representar qualquer número. Mas o sistema fica ambíguo Dois códigos diferentes podem representar o mesmo número IIII = 4 IV = 4 05 November 2014 Sistemas Digitais 11

Sistema de numeração Romana V Mas o problema ao eliminar regras não é apenas este Se eliminarmos as regras poderemos representar qualquer número. Mas o sistema fica ambíguo Dois códigos diferentes podem representar o mesmo número IIII = 4 IV = 4 05 November 2014 Sistemas Digitais 12

Sistema de numeração Romana VI E qual o menor número que se pode representar? O número: 1 O que aconteceu ao número 0? Não é necessário porque temos símbolos para potências de 10: I, X, C, M É por não existir a representação para o número 0 que não temos século 0 05 November 2014 Sistemas Digitais 13

Sistema de numeração Romana VI E qual o menor número que se pode representar? O número 1 O que aconteceu ao número 0? Não é necessário porque temos símbolos para potências de 10: I, X, C, M É por não existir a representação para o número 0 que não temos século 0 05 November 2014 Sistemas Digitais 14

Sistema de numeração Romana VII O primeiro século da era cristã é o século: I D.C. Antes do nascimento de Cristo os séculos são numerados também iniciando em I com o sufixo A.C. O primeiro século antes de cristo é o século: I A.C. Também não temos ano zero. Qual o primeiro ano do século XXI? Assim o primeiro ano do século XXI é o ano 2001 e não o ano 2000 Porque o ano em que cristo nasceu é o ano 1 e não o ano 0. 05 November 2014 Sistemas Digitais 15

Sistema de numeração Romana VII O primeiro século da era cristã é o século: I D.C. Antes do nascimento de Cristo os séculos são numerados também iniciando em I com o sufixo A.C. O primeiro século antes de cristo é o século: I A.C. Também não temos ano zero. O primeiro ano do século XXI é o ano 2001 e não o ano 2000 Porque o ano em que cristo nasceu é o ano 1 e não o ano 0. 05 November 2014 Sistemas Digitais 16

Sistema de numeração Romana VIII Para os romanos quando Cristo nasceu já tinha um ano bem tinha nove meses mas isso é outra história Uma outra forma de se interpretar os séculos é com ordinais e não numerais: o 1º século da era cristã é o século I DC o 2º século da era cristã é o século II DC Mas isto começa a ficar confuso e necessitamos de adicionar cada vez mais regras para resolver problemas que vão surgindo 05 November 2014 Sistemas Digitais 17

Sistema de numeração Romana VIII Para os romanos quando Cristo nasceu já tinha um ano bem tinha nove meses mas isso é outra história Uma outra forma de se interpretar os séculos é com ordinais e não numerais: o 1º século da era cristã é o século I DC o 2º século da era cristã é o século II DC Mas isto começa a ficar confuso e necessitamos de adicionar cada vez mais regras para resolver problemas que vão surgindo 05 November 2014 Sistemas Digitais 18

Sistema de numeração Romana IX Limitações: Números entre: 1 e MMMDCCCLXXXVIII (3888) Eliminando as regras podemos representar qualquer número mas o sistema fica ambíguo Não existe o conceito do zero 05 November 2014 Sistemas Digitais 19

Sistema de numeração Árabe 1 Os árabes introduziram um sistema de numeração mais simples (com menos regras) É o sistema que usamos hoje em dia Dispõe de 10 símbolos (algarismos): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 A grande inovação foi a introdução do zero. E de uma só regra: o valor de um algarismo depende da posição Muito mais simples que o conjunto de regras da numeração Romana 05 November 2014 Sistemas Digitais 20

Sistema de numeração Árabe 2 O valor de um algarismo é o seu valor intrínseco multiplicado por um outro valor que depende da posição Se temos 10 símbolos e precisamos de representar um número superior a 9 necessitamos de 2 algarismos O algarismo que adicionamos tem o seu valor intrínseco multiplicado por 10 39 = 3 x 10 + 9 Se necessitarmos de representar números maiores que 99 precisamos de um outro algarismo O algarismo que adicionamos tem o seu valor intrínseco multiplicado por 100: 239 = 2 x 100 + 3 x 10 + 9 05 November 2014 Sistemas Digitais 21

Sistema de numeração Árabe 2 O valor de um algarismo é o seu valor intrínseco multiplicado por um outro valor que depende da posição Se temos 10 símbolos e precisamos de representar um número superior a 9 necessitamos de 2 algarismos O algarismo que adicionamos tem o seu valor intrínseco multiplicado por 10 39 = 3 x 10 + 9 Se necessitarmos de representar números maiores que 99 precisamos de um outro algarismo O algarismo que adicionamos tem o seu valor intrínseco multiplicado por 100: 239 = 2 x 100 + 3 x 10 + 9 05 November 2014 Sistemas Digitais 22

Sistema de numeração Árabe 3 Podemos generalizar esta regra: 10 3 10 2 10 1 10 0 x x x x 9 3 4 5 = = = = 9000 + 300 + 40 + 5 Como o valor do algarismo em cada posição é multiplicado por uma potência de 10 (pq temos 10 símbolos) Dizemos que o sistema de numeração é decimal ou de base 10 05 November 2014 Sistemas Digitais 23

Sistema de numeração Árabe 4 A numeração árabe tem 10 símbolos porque temos 10 dedos na mão Seria possível utilizar outras bases Os franceses referem-se a alguns números na base 20 (os vinte dedos...) Ex.: 80 = 4 x 20 quatre-vingt 90 = 4 x 20 + 10 quatre-vingt-dix. 05 November 2014 Sistemas Digitais 24

Sistema de numeração Árabe 6 No caso geral um número real é representado por uma soma de produtos: Onde: N r = O número na base r r = a base do sistema de numeração (ou radix) d (o valor intrínseco do dígito) d j a d 0 = a parte inteira do número d j-1 a d -k = a parte fracionária do número 05 November 2014 Sistemas Digitais 25

Sistema de numeração Árabe 7 Como já tínhamos visto para a base decimal (base 10) 10 3 10 2 10 1 10 0 x x x x A base r é 10 9 3 4 5 = = = = 9000 + 300 + 40 + 5 Os símbolos, algarismos, ou dígitos são de 0 a r: 0 a 9 05 November 2014 Sistemas Digitais 26

Sistema de numeração Árabe 8 Para o número real (9345.25): 10 3 10 2 10 1 10 0 10-1 10-2 (1/10) (1/100) (1000) (100) (10) (1) (0.1) (0.01) x x x x x x 9 3 4 5. 2 5 = = = = = = 9000 + 300 + 40 + 5 + 0.2 + 0.05 05 November 2014 Sistemas Digitais 27

Sistema binário (base 2) 0001 Nos sistemas de numeração não decimal o que varia é: a base r Os símbolos de 0 a r - 1 Para o sistema binário a base é: r = 2 Dígitos: 0 e 1 05 November 2014 Sistemas Digitais 28

Sistema binário (base 2) 0010 O valor (em decimal) de um número na base binária é obtido: 2 3 2 2 2 1 2 0 2-1 2-2 (1/2 1 ) (1/2 2 ) (1/2) (1/4) (8) (4) (2) (1) (0.5) (0.25) x x x x x x 1 1 0 1. 0 1 = = = = = = 8 + 4 + 0 + 1 + 0 + 0.25 Assim: 1101.01 (2) = 13.25 (10) 05 November 2014 Sistemas Digitais 29

Sistema binário (base 2) 0011 Cada dígito(ou algarismo binário) pode guardar apenas dois valores: 0 ou 1 É chamado de bit do acrónimo de dígito binário (BInary digit) O sistema binário é utilizado em computadores porque é fácil criar circuitos eletrónicos com dois estados (voltagens) estáveis (usando transístores) É possível criar circuitos com mais de dois estados estáveis mas são mais complexos, pois requerem mais componentes (como condensadores e resistências) Assim os circuitos binários permitem uma maior escala de integração no mesmo chip. 05 November 2014 Sistemas Digitais 30

Sistema binário (base 2) 0100 De acordo com a lei de Moore a capacidade de integração de transístores no mesmo espaço duplica a cada dois anos: Estima-se que 2015 os ICs terão uma densidade de 1012 bits/cm2 Em 2001 o número de átomos necessários para guardar um bit era de 10 10 Se o avanço tecnológico conseguir seguir a lei de Moore em 2035 bastará um átomo apenas Um átomo por cada bit pode implicar uma alteração drástica na tecnologia. Single-atom transistor:. 05 November 2014 Sistemas Digitais 31

Sistema binário (base 2) 0100 De acordo com a lei de Moore a capacidade de integração de transístores no mesmo espaço duplica a cada dois anos: Estima-se que 2015 os ICs terão uma densidade de 1012 bits/cm2 Em 2001 o número de átomos necessários para guardar um bit era de 10 10 Se o avanço tecnológico conseguir seguir a lei de Moore em 2035 bastará um átomo apenas Um átomo por cada bit pode implicar uma alteração drástica na tecnologia. Single-atom transistor: http://www.nature.com/nnano/journal/v7/n4/full/nnano.2012.21.html http://www.purdue.edu/newsroom/research/2012/120219klimeckatom.html 05 November 2014 Sistemas Digitais 32

Sistema binário (base 2) 0101 O sistema binário não é ambíguo e pode representar qualquer número No entanto nos computadores cada posição de memória tem um limite de bits que pode armazenar Se o limite for de 32 bits só é possível guardar nessa posição um valor representado por esses bits. Os limites dependem do tipo de valor (ou de dados) Se for um inteiro positivo: 0 a 4 294 967 295 0 a 2 32 1 Se for um inteiro com sinal: 2 147 483 648 a 2 147 483 647 (2 31 ) a 2 31 1 Se for um número real dependerá da forma como o iremos guardar, como veremos 05 November 2014 Sistemas Digitais 33

Sistema binário (base 2) 0110 Se o limite for de 8 bits só é possível guardar nessa posição um valor representado por esses bits: Se for um inteiro positivo: 0 a 255 0 a 2 8 1 Se for um inteiro com sinal: 128 a 127 (2 7 ) a 2 7 1 Ao se desenhar um programa tem de se ter em conta estes limites... mas com algum cuidado Uso não ponderado destes limites levaram ao bug do ano 2000 05 November 2014 Sistemas Digitais 34

Sistema binário (base 2) 0111 Nos anos 80 ou anteriores os computadores tinham memória quer RAM quer de disco muito reduzida. Ao se projetar os dados a guardar em ficheiros, com milhares ou milhões de registos, qualquer poupança de memória seria significativa Os programadores de então descobriram que poderiam poupar no ano de uma data um byte (8 bits) Para um século basta guardar os valores 0 a 99 o que cabe perfeitamente num byte. O problema é que não se esperava que o tempo de vida de alguns programas ultrapassasse o século 20. Mas alguns (ou versões atualizadas) chegaram lá. 05 November 2014 Sistemas Digitais 35

Sistema binário (base 2) 1000 O problema é que no ano 2000 o valor do ano guardado num byte teria o valor zero. Os programas estavam preparados para assumir que o resto dos algarismos do ano seria 19 assim 2000 seria 1900 Em meados da década de 90 todos os programas que se esperava que vivessem no século XXI começaram a ser analisados e corrigidos se necessário Sistemas redundantes começaram a ser desenvolvidos (livres do bug) e colocados em operação simultaneamente com os antigos O investimento foi brutal (mas bom para o mercado de programadores ) Dizia-se que nos EUA estavam-se a formar tantos programadores para lidar com este Bug como advogados para lidar com as situações de litigio que poderiam advir 05 November 2014 Sistemas Digitais 36

Outros sistemas de numeração Outros sistemas de numeração são o Octal: Base r = 8 Dígitos: (0; 1; 2; 3; 4 ; 5; 6; 7) O Hexadecimal Base r = 16 Dígitos: (0; 1; 2; 3; 4 ; 5; 6; 7; 8; 9; A; B; C; D; E; F) Que facilita a representação do valor de um número binário: Ex.: 1111 0001 (2) = F 1 (16) Cada grupo de 4 bits é representado por um dígito hexadecimal 05 November 2014 Sistemas Digitais 37

Outros sistemas de numeração Outros sistemas de numeração são o Octal: Base r = 8 Dígitos: (0; 1; 2; 3; 4 ; 5; 6; 7) O Hexadecimal Base r = 16 Dígitos: (0; 1; 2; 3; 4 ; 5; 6; 7; 8; 9; A; B; C; D; E; F) Que facilita a representação do valor de um número binário: Ex.: 1111 0001 (2) = F 1 (16) Cada grupo de 4 bits é representado por um dígito hexadecimal 05 November 2014 Sistemas Digitais 38

Conversões (mudança de base) 1 Conversões entre Binário e octal Binário e hexadecimal São simples recorrendo à tabela à esquerda porque estas bases são potências de 2 Binário 2 1 Octal 2 3 Hexadecimal 2 4 05 November 2014 Sistemas Digitais 39

Conversões (mudança de base) 2 Para converter basta agrupar os dígitos binários em grupos de: 3 para octal 4 hexadecimal Começando no ponto quer para um sentido ou outro (parte inteira ou fracionária) Na ausência de ponto começa no último dígito (o da direita) Se o último grupo não tiver 3 dígitos adicionam-se: zeros à esquerda (parte inteira) à direita (parte fracionária) 05 November 2014 Sistemas Digitais 40

Conversões (mudança de base) 3 Binário <=> Hexadecimal 1001110 0101.01010 (2) 0100 1110 0101. 0101 0000 (2) = = 4 E 5. 5 0 (16) 0100 1110 0101. 0101 0000 (2) 05 November 2014 Sistemas Digitais 41

Conversões (mudança de base) 4 Binário <=> Octal 10011100101.01010 (2) 010 011 100 101. 010 100 (2) = = 2 3 4 5. 2 4 (8) 010 011 100 101. 010 100 (2) 05 November 2014 Sistemas Digitais 42

Conversões (mudança de base) 5 A forma geral de converter um inteiro entre a base decimal e qualquer outra base é dividir sucessivamente o número decimal pela base: 23 (10) 2 1 11 2 1 5 2 1 2 2 0 1 10111 (2) Até que o quociente seja menor que a base O número na base é a sequência de restos e o último quociente da direita para a esquerda. 05 November 2014 Sistemas Digitais 43

Conversões (mudança de base) 6 Para a base hexadecimal o principio é o mesmo: 510 (10) 16 14 31 16 15 1 E F 1 1FE (16) No final é necessário substituir os restos e o último quociente, se maior que 9, pelas letras correspondentes 05 November 2014 Sistemas Digitais 44

Conversões (mudança de base) 7 A forma geral de converter a parte fracionária entre a base decimal e qualquer outra base é multiplicar sucessivamente o número decimal pela base Até se obter a precisão pretendida ou a parte fracionária do resultado seja igual 0 Para converter 0.523 na base decimal para binário fazem-se multiplicações sucessivas por 2: = 0.1000 0101 (2) 05 November 2014 Sistemas Digitais 45

Conversões (mudança de base) 8 Para converter 0.523 na base decimal para hexadecimal fazem-se multiplicações sucessivas por 16: = 0.85E (16) 0.85E (16) = 0.1000 0101 1110 (2) (Por consulta da tabela) Como cada digito hexadecimal corresponde a 4 binários obteve-se aqui maior precisão que no slide anterior 05 November 2014 Sistemas Digitais 46

Conversões (mudança de base) 8 Para converter 0.523 na base decimal para hexadecimal fazem-se multiplicações sucessivas por 16: = 0.85E (16) 0.85E (16) = 0.1000 0101 1110 (2) (Por consulta da tabela) Como cada digito hexadecimal corresponde a 4 binários obteve-se aqui maior precisão que no slide anterior 05 November 2014 Sistemas Digitais 47

Conversões (mudança de base) 9 E se quisermos agora converter 0.85E (16) para decimal? Já vimos como converter de binário para decimal: 05 November 2014 Sistemas Digitais 48

Conversões (mudança de base) 10 2 3 2 2 2 1 2 0 2-1 2-2 (1/2 1 ) (1/2 2 ) (1/2) (1/4) (8) (4) (2) (1) (0.5) (0.25) x x x x x x 1 1 0 1. 0 1 = = = = = = 8 + 4 + 0 + 1 + 0 + 0.25 Assim: 1101.01 (2) = 13.25 (10) O método é o mesmo mas agora a base é 16: 05 November 2014 Sistemas Digitais 49

Conversões (mudança de base) 11 16 1 16 0 16-1 16-2 16-3 (1/16 1 ) (1/16 2 ) (1/16 3 ) (1/16) (1/256) (1/4096) (16) (1) (0.0625) (0.00390625) (0.000244140625) x x x x x 0 0. 8 5 E (14) = = = = = 0 + 0 + 0.5 + 0.01953125 + 0.00341796875 Assim: 0.85E (16) = 0.52294921875 (10) (erro de arredondamento para 0.523) 05 November 2014 Sistemas Digitais 50

Conversões (mudança de base) 12 Sabendo as potências de 2: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 é possível usar truques para acelerar as conversões Supondo que queremos converter 1000 (10) para binário: Procurando a potência de 2 imediatamente acima: 1024 (10) = 1 0 0 0 0 0 0 0 0 0 0 (2) Subtraindo 1 para obter uma serie de 1 s 1023 (10) = 0 1 1 1 1 1 1 1 1 1 1 (2) Subtraindo 23 para obter 1000 1023 (10) = 0 1 1 1 1 1 1 1 1 1 1 (2) - 0023 (10) = 0 0 0 0 0 0 1 0 1 1 1 (2) 1000 (10) = 0 1 1 1 1 1 0 1 0 0 0 (2) 05 November 2014 Sistemas Digitais 51

Conversões (mudança de base) 13 Outro truque pode ser aplicado se tivermos uma longa série de 1s no número binário (run of 1s) Supondo que queremos converter 0011110 (2) para decimal: Utilizando o valor da posição de cada bit temos: 0011110 (2) = 0 x 64 + 0 x 32 + 1 x 16 + 1 x 8 + 1 x 4 + 1 x 2 + 0 x 1 = 30 (10) Utilizando recodificação do número (number re-coding): As combinações de 01 passam a: 10 As combinações de 10 passam a: 10 (1 é negativo) Os 1s interiores passam a zeros: _ 0100010 (2) = 32 2 = 30 (10) 05 November 2014 Sistemas Digitais 52.

Números negativos Até agora só vimos números positivos Para distinguir números positivos de negativos é necessária mais alguma informação A notação matemática usa os símbolos: + e - Podemos implementar o sinal com um bit extra de informação Existem várias formas de o fazer. Vamos ver 3 para números binários. 05 November 2014 Sistemas Digitais 53

Sinal-amplitude (Sign-magnitude) Adiciona-se um bit de sinal s: s = 0 (+) s = 1 (-) Para 4 bits temos um de sinal e três para o valor absoluto: sxxx 0101 = +5 1101 = -5. 05 November 2014 Sistemas Digitais 54

Complemento para 1 e para 2 I Para simplificar os circuitos de subtração e de adição usam-se as representações em complemento para 1 e complemento para 2 Para efetuar adições e subtrações em complemento para 2 é utilizado o mesmo hardware Para a adição basta o somador Para a subtração um inversor e o mesmo somador O complemento para 1 (C/1) é obtido invertendo todos os bits do número positivo para obter o negativo Para números de 4 bits: -5 = -0101 = 0101 = 1010. 05 November 2014 Sistemas Digitais 55

Complemento para 1 e para 2 II Para simplificar os circuitos de subtração e de adição usam-se as representações em complemento para 1 e complemento para 2 Para efetuar adições e subtrações em complemento para 2 é utilizado o mesmo hardware Para a adição basta o somador Para a subtração um inversor e um somador O complemento para 2 (C/2) é obtido invertendo todos os bits do número positivo e adicionando 1 para obter o número negativo Para números de 4 bits: -5 = -0101 = 0101 + 1 = 1010 + 1 = 1011 C/2 = C/1 + 1 05 November 2014 Sistemas Digitais 56

Complemento para 1 e para 2 III Os números positivos são os mesmos nas 3 representações O bit mais significativo é sempre 0 para positivo e 1 para negativo 05 November 2014 Sistemas Digitais 57

Complemento para 1 e para 2 IV Com exceção do complemento para 2 há duas representações para o zero: +0 e -0 Assim o complemento para 2 permite representar mais um número que as outras representações (-128) 05 November 2014 Sistemas Digitais 58

Complementos I Forma geral de calcular o complemento para um número N, na base r com n dígitos : Se o número é positivo adicionam-se dígitos à esquerda com o valor 0 até perfazer o número de dígitos n Se número é negativo: o complemento para r-1 é dado por: (r n -1) N o complemento para r é dado por: r n N. 05 November 2014 Sistemas Digitais 59

Complementos II Exemplo na base r=2, para um número N com n=8 dígitos: +101 (2) = 0000 0101-101 (2) = Complemento para 1 (r-1) ou C/1: 1111 1111 2 8-1 - 101 - N 1111 1010 Complemento para 2 (r) ou C/2: 1 0000 0000 2 8 ou: C/1 + 1-101 - N 0 1111 1011. 05 November 2014 Sistemas Digitais 60

Complementos III Exemplo na base r=10, para um número N com n=4 dígitos: +48 (10) = 0048-48 (10) = Complemento para 9 (r-1) ou C/9: 9999 10 4-1 - 48 - N 9951 Complemento para 10 (r) ou C/10: 1 0000 10 4 ou: C/9 + 1-48 - N 0 9952. 05 November 2014 Sistemas Digitais 61

Aritmética - Adição Do mesmo modo que a decimal: 05 November 2014 Sistemas Digitais 62

Aritmética - Subtração Do mesmo modo que a decimal, mas fazendo: A B = A + (-B) 15 8 = 15 + (-8). 05 November 2014 Sistemas Digitais 63

Aritmética Multiplicação 1 Na multiplicação para a representação sinal-amplitude o sinal é obtido através do bit de sinal de acordo com a regra matemática: bit de sinal: + * + = + 0 x 0 = 0 - * + = - 1 x 0 = 1 + * - = - 0 x 1 = 1 - * - = + 1 x 1 = 0 A operação com bits é a operação XOR que veremos mais adiante 05 November 2014 Sistemas Digitais 64

Aritmética Multiplicação 2 A multiplicação é efetuada tal como em decimal, para os valores absolutos, e o sinal S é adicionado no final. 05 November 2014 Sistemas Digitais 65

Aritmética Divisão Se a multiplicação é uma repetição de adições uma divisão é uma contagem de repetição de subtrações: 1(subtração) A divisão de 17 / 4 = 4.25 em binário 2 = 10 (2) 3 = 11 (2) 4 = 100 (2) Subtração impossível (deslocamento) 100.0. Subtração impossível (deslocamento) 100.00 Subtração possível 100.01 Fim se: resultado subtração zero ou a precisão pretendida 05 November 2014 Sistemas Digitais 66

Aritmética Overflow Ao adicionar dois números de N bits O resultado pode ser expresso em mais que N bits: 1111 + 0001 10000 Neste caso ocorre um overflow Este caso será estudado mais adiante 05 November 2014 Sistemas Digitais 67

Códigos Sequências binárias podem representar: Códigos numéricos que representam números Códigos Alfanuméricos que representam caracteres Códigos especiais para deteção e correção de erros 05 November 2014 Sistemas Digitais 68

BCD 0001 Em BCD (Binary coded decimal) ou 8421, cada 4 bits (um nibble) guardam um valor de 0 a 9 Os restantes valores que podem ser guardados em 4 bits são ignorados (2 4 = 16) A vantagem é que permite uma conversão fácil entre decimal e binário É usado em alguns periféricos para entrada ou saída de dados 05 November 2014 Sistemas Digitais 69

BCD (conversão entre decimal) 0010 Para converter um número decimal para BCD substitui-se cada dígito decimal pelo seu código BCD (de 4 bits): 3 9. 5 (10) = 0011 1001. 0101 (BCD) Para converter de BCD para decimal agrupam-se os bits em grupos de 4, a contar do ponto ou da direita se inteiro, e substitui-se pelo valor decimal: 10100110010 (BCD) = 0101 0011 0010 (BCD) = 5 3 2 (10) 05 November 2014 Sistemas Digitais 70

BCD (adição) 0011 Como na adição binária Se a soma de 2 conjuntos de 4 bits for superior a 9 é inválida Deve ser somado 6 a esse grupo de bits (para saltar os 6 valores inválidos) Adiciona-se 1 ao grupo de bits com valor inferior a 9 à esquerda Repete-se o processo para este grupo e seguintes se o valor for superior a 9 05 November 2014 Sistemas Digitais 71

Gray 0001 O código de Gray facilita deteção de erros Pois quando se muda de uma posição para a seguinte ou anterior o código só varia num bit O código de Gray também é designado por refletido ou espelho Na figura temos uma forma de obter o código de Gray para 1 bit E daí para 2 e 3 bits Para mais bits o principio é o mesmo 05 November 2014 Sistemas Digitais 72

Gray 0011 Na figura temos o código de Gray para 4 bits: 05 November 2014 Sistemas Digitais 73

Gray (conversão entre binário) 0010 Para converter o código de Gray para binário: Manter o bit mais significativo (MSB - Most significant bit) Da esq. para direita somar o bit Gray seguinte com o último bit binário obtido ignorando carry 11011100 (Gray) 10010111 (2) Para converter código binário para Gray: Manter o bit mais significativo (MSB - Most significant bit) Da esq. para direita somar dois pares de bits ignorando carry 10010111 (2) 11011100 (Gray) 05 November 2014 Sistemas Digitais 74

ASCII SOH ASCII (American Standard Code for Information Interchange) Código Alfanumérico para comunicação, por exemplo entre dois computadores 7 ou 8 bits 05 November 2014 Sistemas Digitais 75

ASCII (7 bits) STX 05 November 2014 Sistemas Digitais 76

ASCII ETX Os primeiros 32 caracteres são para controlo de fluxo de dados ou de terminal: SOH: STX: ETX: EOT: ENQ: ACK: BEL: BS: FF: LF: CR: ESC:... start of Heading start of text end of text end of transmission enquiry acknowledge bell back space form feed line feed carriage return escape 05 November 2014 Sistemas Digitais 77

ASCII (8 bits) EOT No caso de ASCII 8 bits os 128 caracteres adicionais podem ser gráficos ou caracteres acentuados para uma dada língua: 05 November 2014 Sistemas Digitais 78

ASCII ENQ Exemplo de uma cadeia de caracteres: 05 November 2014 Sistemas Digitais 79