Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * Sistemas de Numeração e Códigos Prof. Remy Eskinazi, DSc UPE -Poli / IFPE/ Unibratec * * Sistemas Digitais Circuitos eletrônicos que são construídos com lógica digital utilizando uma determinada tecnologia de implementação Computação de uso geral ou dedicada Telecomunicações Automação e controle de processos Robótica Medicina Instrumentação ... * * * Evolução Histórica dos Computadores Computadores mecânicos (1642 – 1945) Primeira geração (1945 – 1955) Tecnologia: Válvulas Segunda geração (1955 – 1965) Tecnologia: Transistores Terceira geração (1965 – 1980) Tecnologia: Circuitos integrados Quarta geração (1980 em diante) Tecnologia: VLSI (Very Large Scale Integration) Quinta geração (?) Tecnologia: (?) * * * Evolução Histórica dos Computadores Alguns marcos históricos... 1642 – Calculadora mecânica - Pascal 1834 – Máquina analítica – Babbage 1943 – COLOSSUS – 1º Computador electrônico 1964 – IBM 360 – 1ª linha de produtos 1974 – Intel 8080 – 1º chip de 8 bits para uso geral 1981 – IBM PC – 1º PC tal como os conhecemos 1987 – Sun SPARC – 1ª Workstation RISC * * * Evolução Histórica dos Computadores 1ª Geração (1945 – 1955) ENIAC Desenvolvido pelo exército americano para cálculo balístico * * * Evolução Histórica dos Computadores 2ª Geração (1955 – 1965) IBM 1401 * * * Evolução Histórica dos Computadores 3ª Geração (1965 – 1980) DEC PDP-11 IBM 360 * * * Evolução Histórica dos Computadores 4ª Geração (1980 em diante) IBM PC Sinclair ZX Spectrum Apple Macintosh * * * Evolução Histórica dos Computadores 4ª Geração (1980 em diante) Tablets Dell Desktops HP Server * * Sistemas Digitais Características gerais dos sistemas digitais Uso de álgebra booleana Diversas tecnologias de implementação Em contínua expansão Ferramentas de projeto Uso de representações numéricas A complexidade aumenta a cada dia ... * * Representação da Informação Nos sistemas digitais, a informação é representada por sinais elétricos Tensão alta – e.g. 3 a 5.5 V – HIGH = Estado ‘1’ Tensão baixa – e.g. -0.5 a 2 V – LOW = Estado ‘0’ Ex: 1000110011110001b pode representar um comando básico (instrução) de um microprocessador Cada dígito binário (0 ou 1) designa-se por bit (menor informação digital possível) * * Sistemas de Numeração Binário (base 2) {0, 1} Octal (Base 8) {0, 1, 2, 3, 4, 5, 6, 7} Decimal (base 10) {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Hexadecimal (Base 16) {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} * * Sistemas de Numeração Decimal (base 10) (Sistema Posicional) 10 dígitos – 0 a 9 Exemplo: 2745.214 = 2×103 + 7×102 + 4×101 +5×100 + 2×10-1 + 1×10-2 + 4×10-3 Conversão de Números em uma base b qualquer para a base 10 Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + .... + a-n.b-n * * Sistemas de Numeração Binário (base 2) 2 dígitos – 0 e 1 Conversão Binário em Decimal Exemplo: 1011.101 = 1×23 + 0×22 + 1×21 + 1×20 + 1×2-1 + 0×2-2 + 1×2-3 = (11,625 )10 Potências de 2 K (Kilo) – 210 = 1024 M (Mega) – 220 = 1024x1024 = 1.048.576 G (Giga) – 230 = 1024x1024x1024 = 1.073.741.824 T (Tera) – 240 = 1.073.741.824 x 1024 = 1.099.511.627.776 * * Conversão Decimal em Binário * * Sistemas de Numeração Conversão base 10 base 2 Divide-se sucessivamente por 2 e anota-se o resto Ex: (41)10 (41)10 = (101001)2 Bit menos significativo Bit mais significativo * * Conversão da Parte Fracionária Parte Fracionária do Número A conversão da parte fracionária do número será feita, algarismo a algarismo, da esquerda para a direita, baseada no fato de que se o número é maior ou igual a 0,5 , em binário aparece 0,1, isto é, o correspondente a 0,5 decimal. Assim, 0,6 será 0,1_ _ ..., ao passo que 0,4 será 0,0_ _ ... Tendo isso como base, basta multiplicar o número por dois e verificar se o resultado é maior ou igual a 1. Se for, coloca-se 1 na correspondente casa fracionária, se 0 coloca-se 0 na posição. Em qualquer dos dois casos, o processo continua, lembrando-se, ao se multiplicar o número por dois, a vírgula move-se para a direita e, a partir desse ponto, estamos representando, na casa à direita, a parte decimal do número multiplicado por dois. Vamos ao exemplo, representando, em binário, o número 0,625. 0,625 x 2 = 1,25 , logo a primeira casa fracionária é 1. Resta representar o 0,25 que restou ao se retirar o 1 já representado. 0,25 x 2 = 0,5 , logo a segunda casa é 0. Falta representar o 0,5 . 0,5 x 2 = 1 , logo a terceira casa é 1. 0,62510 = 0,1012 Quando o número tiver parte inteira e parte fracionária, podemos calcular, cada uma, separadamente. Tentando representar 0,8, verifica-se que é uma dízima. 0,8 = 0,110011001100.... Da mesma forma, vê-se que 5,8 = 101,11001100... , também uma dízima. 11,6 = 1011,10011001100... o que era óbvio, bastaria deslocar a vírgula uma casa para a direita, pois 11,6 = 2 x 5,8 . * * Conversão da Parte Fracionária Exemplo: 0.828125(10) = X(2) 0.828125 x 2 = 1. 65625 0.65625 x 2 = 1.3125 0.3125 x 2 = 0.625 0.625 x 2 = 1.25 0.25 x 2 = 0.5 0.5 x 2 = 1 Logo, 0.828125(10) = 0.110101(2) * * Seqüência de contagem para 4 bits * * Sistemas de Numeração Hexadecimal (base 16) e Octal (base 8) Representação fácil de quantidades binárias Octal – 8 dígitos – 0 a 7 Hexadecimal – 16 dígitos 0 a 9; A a F Exemplos: (25)8 = 2×81 + 5×80 = (21)10 (B3)16 = 11×161 + 3×160 = (179)10 * * Sistemas de Numeração Tabela de conversão de bases * * Sistemas de Numeração Conversão base 2 base 8 Grupos de 3 bits (101001)2 = (51)8 Conversão base 2 base 16 Grupos de 4 bits (101001)2 = (29)16 * * Números Inteiros e Fracionários Números inteiros Armazenamento dependente do hardware 8 bits (byte): [0; 255] ou [-128; 127] 16 bits (word): [0; 65535] ou [-32768; 32767] 32 bits (double word): [0; 4294967295] ou [-2147483648; 2147483647] 64 bits ....... Números fraccionários Representados na forma ± mantissa 10 ± expoente * * Números Inteiros e Fracionários Faixa de números sem sinal para 8 bits: 0 a 256-1 0000 0000(2) = 0(10) 0000 0001(2) = 1(10) 0000 0010(2) = 2(10) ... 1111 1100(2) = 252(10) 1111 1101(2) = 253(10) 1111 1110(2) = 254(10) 1111 1111(2) = 255(10) * * Representação de números Números reais: infinitos. No computador: finitos. Maioria: grande quantidade de zeros à esquerda. Computador: pode lidar com números até um certo tamanho. Overflow: tratado pelo sistema operacional. No computador: é preciso representar números com sinal. Solução: usar 1 bit (sinal magnitude). Primeira tentativa: o bit mais significativos (MSB) é usado para sinal. Problema: duas representações para o zero Solução mais usada: complemento a 2 * * * Complemento a 2 Faixa de valores em complemento a 2 para 3 bits 0 -4 2 -2 1 3 -3 -1 * * Complemento a 2 Complemento a 2: regra prática Considere X = 0000 1000, o complemento a 2 de X será: -X = 1111 1000 * * Operações Aritméticas Mesmas regras da base 10 Adição Subtração * * Adição e Subtração (8 bits) 6(10) = 0000 0110(2) 7(10) = 0000 0111(2) adição subtração Subtração com complemento a 2 * * Operações Aritméticas Multiplicação * * Operações Aritméticas Divisão 1 1 0 1 1 1 1 -------------- 1 1 1 0 0 1 -------- 0 0 0 0 0 -------- 0 0 1 0 0 --------- 0 1 1 1 1 ------ 0 0 * * Códigos Binário Característica: Representação Binária de qualquer número Ex. Representação binário para 4 bits 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 10 1011 11 1100 12 1101 13 1110 14 1111 15 * * Códigos BCD Característica: Representação Binário da base 10 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 * * Códigos BCD * * Códigos GRAY Característica: Apenas 1 bit muda por número seqüenciado 00 01 11 10 000 0 001 1 011 2 010 3 110 4 111 5 101 6 100 7 0 1 * * Códigos Alfanuméricos ASCII American Standard Code for Information Interchange 7 bits + 1 de paridade (opcional) Pequeno conjunto de caracteres Caracteres de controle Sinais ortográficos Algarismos Letras maiúsculas e minúsculas (A...Z; a...z) Sinais algébricos * * Códigos Tabela de códigos ASCII * Tabela ASCII Extendida * * * * Códigos Alfanuméricos UNICODE 16 bits ISO / IEC 10646 Grafismos de todo o mundo Alfabeto latino Alfabeto cirílico Caracteres chineses, etc. Necessita conversão little-endianbig-endian Little-endian – byte de maior peso à esquerda Big-endian – byte de maior peso à direita * * Resumo Bases numéricas Facilidade de representação Aritmética digital Utilizada em circuitos controladores digitais Códigos digitais Representação de grandezas de forma apropriada Pode ser necessário acrescentar zeros à esquerda (e/ou à direita no caso de números fraccionários) para converter números binários para octal ou hexadecimal. Exemplo: números fraccionários 32 bits – tem-se 8 bits para o expoente (1 de sinal + 7) e 24 bits para a mantissa (1 de sinal + 23). A virgula é fixada entre o primeiro e segundo bit de maior peso da mantissa. As mesmas regras servem para outras bases como a base 8 e base 16 As mesmas regras servem para outras bases como a base 8 e base 16 O bit de paridade serve para verificar se houve erros na transmissão. Só consegue detectar erros se estes ocorrerem num número impar de bits.