Sistemas numéricos Sistemas numéricos 2 Bases Circuitos Digitais I Notas de Aula É importante representar valores das informações que desejamos processar; Por exemplo, num sinal amostrado, converter uma amplitude em uma sequência de bits; O mais comum é utilizar a base : 358.7 = 3 2 +5 +8 + +7 2 Existem outras bases importantes: 2, 8, 6. Sistemas de Representação Numéricos Bases e Códigos Ricardo Tokio Higuti Departamento de Engenharia Elétrica - FEIS - Unesp
Sistemas numéricos 3 Sistemas numéricos 4 Representação em uma base b Número representado numa base inteira b >, com n dígitos na parte inteira e m dígitos na parte fracionária: N b = (a n a n 2 a 2 a a a a 2 a m+ a m ) b N b = a n b n +a n 2 b n 2 + +a 2 b 2 +a b +a b + +a b +a 2 b 2 + +a m+ b m+ +a m b m Dígitos válidos: a (b ) Parte inteira (positiva) com n dígitos: valores de a (b n ) Base 2 É uma das bases mais importantes em circuitos digitais; Dígitos válidos: e ; BIT: BInary digit - dígito binário; Número representado na base 2:. 2 = 2 3 + 2 2 + 2 + 2 + 2 + 2 2 =.75 Um conjunto de 8 bits é chamado de Byte (B); Um conjunto de 4 bits (meio Byte) é chamado de Nibble. Conversão da base para uma base b Parte inteira Seja um número inteiro positivo escrito na base b: N b = a n b n +a n 2 b n 2 + +a 2 b 2 +a b +a b, onde lembra-se que a i b, Utilizando-se divisões inteiras (/3 = 3, resto 2), divide-se N b por b, obtendo-se: N b = N b b = a n b n 2 +a n 2 b n 3 + +a 2 b +a b, restoa. Ou seja, o resto da divisão inteira de N b por b é igual ao dígito menos significativo do número escrito na base b. Repetindo-se a operação de divisão: N b = N b b = a n b n 3 +a n 2 b n 4 + +a 2 b, resto a. e assim por diante. Esta operação é feita até que o resultado da divisão seja menor que b, que será o último resto da divisão, e portanto o valor do dígito mais significativo. Portanto, para converter um número inteiro positivo da base para a base b, basta fazer divisões inteiras sucessivas por b. Os restos das divisões são os dígitos do número na base b.
Sistemas numéricos 5 Exemplos O número 8 na base, convertido para a base 2, seria: Portanto: 8 2 = 9,resto a = 9 2 = 4,resto a = 4 2 = 2,resto a 2 = 2 2 =,resto a 3 = 2 =,resto a 4 = 8 = 2 = 2 4 + 2 Convertendo o número 8 da base para a base 3: Portanto: 8 3 = 6,resto a = 6 3 = 2,resto a = 2 3 =,resto 2 a 2 = 2 Sistemas numéricos 6 Conversão da base para uma base b Parte fracionária Seja um número fracionário escrito na base b: N b = a b +a 2 b 2 +a 3 b 3 +a 4 b 4 + Ao multiplicar N b por b, fica-se com: N b b = a +a 2 b +a 3 b 2 +a 4 b 3 + Ou seja, o resultado tem uma parte inteira (a ) e uma parte fracionária. Portanto, a parte inteira é o valor do dígito logo após o ponto decimal: a. Repetindo-seaoperação, toma-seapartefracionáriade(n b b) e multiplica-se por b novamente, obtendo-se o dígito a 2, e assim sucessivamente. 8 = 2 3 = 2 3 2
Sistemas numéricos 7 Exemplos O número.75 na base, convertido para a base 2, seria: Portanto:.75 2 =.5 a =.5 2 =. a 2 =.75 =. 2 = 2 + 2 2 Convertendo o número.75 da base para a base 3:.75 3 = 2.25 a = 2.25 3 =.75 a 2 =.75 3 = 2.25 a 3 = 2.25 3 =.75 a 4 = e portantoresultanuma dízima, eonúmero.75não temuma representação exata na base 3 (se for utilizado um número finito de dígitos): Sistemas numéricos 8 Conversão de base Parte inteira: resto das divisões sucessivas (divisão inteira) Parte fracionária: multiplicações sucessivas (parte inteira da multiplicação e mantém a parte fracionária) Para converter de uma base b para uma base b 2 deve-se, de forma geral, converter para a base e depois para a outra base Há relação direta entre algumas bases, por exemplo, da base 2 para a base 8 ou base 2 para base 6 Bases importantes Base 2 - Binária Base 8 - Octal dígitos: a 7 Base 6 - Hexadecimal.75 =.22222... 3 = 2 3 +2 3 3 +2 3 5 + Se usarmos apenas três dígitos após o ponto decimal, fica-se com a aproximação:.22 3 = 2 3 +2 3 3 =.747474... ou seja, há um erro na representação.
Sistemas numéricos 9 Base Hexadecimal Há 6 dígitos possíveis: de a 5 ; De a 9 os dígitos hexa são os próprios números arábicos; De a 5, utilizam-se as letras de A a F; Dois dígitos hexadecimais formam um Byte (oito bits); É uma forma mais compacta de representar uma sequência de bits. A representação de um número na base hexadecimal também pode ser feita usando um sufixo h ou H: A8 6 = A8h = A8H Em algumas linguagens de programação, um número na base hexadecimal pode ser representado com o prefixo x: A8 6 = xa8 Sistemas numéricos Base Hexadecimal decimal hexadecimal binário 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 A B 2 C 3 D 4 E 5 F 6 7 8 28 29 3 2 222 255 256
Sistemas numéricos Exercícios Faça as seguintes conversões entre bases:.. da base 2 para a base ; 2. 3.3 da base para base 2; 3. 23. da base 4 para a base 3; 4. AF.8 da base 6 para a base ; 5. AF.8 da base 6 para a base 2. Sistemas numéricos 2 Códigos As bases seguem uma lei de formação dos números. Se um número está escrito em determinada base, saberemos seu valor. Pode-se utilizar também códigos, que não necessariamente precisam seguir uma lógica para representar os números. Alguns códigos de interesse: BCD - Binary-coded decimal Dígitos da base ( a 9) codificados em 4 bits; Gray - muda apenas um bit entre representações adjacentes; ASCII - código que representa letras, números e comandos/controle; Códigos detectores/corretores de erros - adicionam bits à informação original para aumentar a confiabilidade na transmissão da informação.
Sistemas numéricos 3 Código BCD BCD- Binary-Coded Decimal(Decimal Codificado em Binário); Codifica os dígitos decimais ( a 9) em binário; São necessários 4 bits para representar os dígitos de a 9: decimal BCD 2 3 4 5 6 7 8 9 Portanto, das 6 possibilidades de representação com 4 bits, apenas são usadas. Há uma menor eficiência no uso de memória (bits). É útil para mostrar valores numéricos em displays, por exemplo. Sistemas numéricos 4 Código BCD Para números maiores que 9 (compare a quantidade de bits em cada caso): decimal BCD binário 2 3 4 5 6 7 8 28 29 3 2 222 255 256
Sistemas numéricos 5 Código de Gray É um código no qual há mudança de apenas um bit entre um número e o número adjacente; Para três bits: decimal binário Gray 2 3 4 5 6 7 Na prática é difícil fazer com que os bits mudem exatamente no mesmo instante; Mudar apenas um bit de cada vez pode levar a menor taxa de erros; Algumas aplicações: Codificação em comunicações digitais para reduzir taxa de erro; Codificação de posição (encoder) Solução ótima da Torre de Hanoi. Sistemas numéricos 6 Cógigo de Gray Encoder de posição; Exemplo para 8 posições (na prática são mais, para aumentar a resolução); Na mudança da posição 3 para a 4, se fosse usada a representação binária (base 2), dever-se-ia mudar de para, ou seja, três bits deveriam mudar simultaneamente; Isso é bem difícil de ocorrer na prática, e poderia ocorrer - -, ocasionando erros na identificação da posição do motor.
Sistemas numéricos 7 Código ASCII ASCII- American Standard Code for Information Interchange; Código que representa caracteres(letras, números) e comandos (enter, espaço, fim de linha, etc.); Utiliza 7 bits para representar 256 caracteres e comandos; Sistemas numéricos 8 Código ASCII Por exemplo, para codificar a palavra: Unesp Em hexadecimal: 55 6E 65 73 7 Em binário: b7 b6 b5 BITS b4 b3 b2 b ASCII CONTROL CODE CHART CONTROL NUL SOH 2 STX 2 2 3 ETX 3 3 4 EOT 4 4 5 ENQ 5 5 6 ACK 6 6 7 BEL 7 7 8 BS 8 9 HT 9 LF A 2 VT B 3 2 FF C 4 3 CR D 5 4 SO E 6 5 SI F 7 6 DLE 2 7 DC 2 8 DC2 2 22 9 DC3 3 23 2 DC4 4 24 2 NAK 5 25 22 SYN 6 26 23 ETB 7 27 24 CAN 8 3 25 EM 9 3 26 SUB A 32 27 ESC B 33 28 FS C 34 29 GS D 35 3 RS E 36 3 US F 37 LEGEND: 32 SP SYMBOLS NUMBERS 2 4 33! 2 4 34 22 42 35 # 23 43 36 $ 24 44 37 % 25 45 38 & 26 46 39 27 47 4 ( 28 5 4 ) 29 5 42 * 2A 52 43 + 2B 53 44, 2C 54 45 2D 55 46. 2E 56 47 / 2F 57 dec CHAR hex oct 48 3 6 49 3 6 5 2 32 62 5 3 33 63 52 4 34 64 53 5 35 65 54 6 36 66 55 7 37 67 56 8 38 7 57 9 39 7 58 : 3A 72 59 ; 3B 73 6 < 3C 74 6 = 3D 75 62 > 3E 76 63? 3F 77 64 UPPER CASE @ 4 65 A 4 66 B 42 2 67 C 43 3 68 D 44 4 69 E 45 5 7 F 46 6 7 G 47 7 72 H 48 73 I 49 74 J 4A 2 75 K 4B 3 76 L 4C 4 77 M 4D 5 78 N 4E 6 79 O 4F 7 8 P 5 2 8 Q 5 2 82 R 52 22 83 S 53 23 84 T 54 24 85 U 55 25 86 V 56 26 87 W 57 27 88 X 58 3 89 Y 59 3 9 Z 5A 32 9 [ 5B 33 92 \ 5C 34 93 ] 5D 35 94 ˆ 5E 36 95 5F 37 96 LOWER CASE 6 4 97 a 6 4 98 b 62 42 99 c 63 43 d 64 44 e 65 45 2 f 66 46 3 g 67 47 4 h 68 5 5 i 69 5 6 j 6A 52 7 k 6B 53 8 l 6C 54 9 m 6D 55 n 6E 56 o 6F 57 2 p 7 6 3 q 7 6 4 r 72 62 5 s 73 63 6 t 74 64 7 u 75 65 8 v 76 66 9 w 77 67 2 x 78 7 2 y 79 7 22 z 7A 72 23 { 7B 73 24 7C 74 25 } 7D 75 26 7E 76 27 DEL 7F 77 Victor Eijkhout Dept. of Comp. Sci. University of Tennessee Knoxville TN 37996, USA
Sistemas numéricos 9 Códigos Detectores e Corretores de Erros Transmissão de dados digitais - suscetíveis a ruído; Existe a opção de adicionar bits à mensagem original para detectar e/ou corrigir erros Sistemas numéricos 2 Bit de Paridade No caso mais simples: um bit adicionado a cada certo número de bits; Paridadepar: obitadicionadoéou,deformaqueonúmero total de s seja par (contando com o próprio bit de paridade); Paridade ímpar: idem ao caso anterior, mas o número total de s é ímpar. Suponha que se deseje transmitir a palavra Unesp. os bits originais seriam: Poderiam ocorrer erros em determinados bits, e, por exemplo, o sinal recebido seria: Nesse caso, o dado decodificado seria: Ej%{p
Sistemas numéricos 2 Bit de Paridade Considerando agora um bit de paridade par (a cada 7 bits, inclui-se um bit na posição à esquerda do bit mais significativo da mensagem original), o código enviado seria: Se ocorressem erros nos mesmos bits, estes seriam detectados. No primeiro caractere, se a sequência de bits recebida fosse: O erro seria detectado pois agora há um número ímpar de s, e, neste caso, pode-se descartar o dado e pedir que seja retransmitido. Para um bit de paridade, não se detecta um número par de erros. Sistemas numéricos 22 Unidades Byte (B) = 8 bits Unidade SI Valor Unidade IEC Valor kb - kilobyte 3 Bytes KiB - kibibyte 24 = 2 Bytes MB - megabyte 6 Bytes MiB - mebibyte (24) 2 = 2 2 Bytes GB - gigabyte 9 Bytes GiB - gibibyte (24) 3 = 2 3 Bytes TB - terabyte 2 Bytes TiB - tebibyte (24) 4 = 2 4 Bytes PB - petabyte 5 Bytes PiB - pebibyte (24) 5 = 2 5 Bytes EB - exabyte 8 Bytes EiB - exbibyte (24) 6 = 2 6 Bytes ZB - zettabyte 2 Bytes ZiB - zebibyte (24) 7 = 2 7 Bytes YB - yottabyte 24 Bytes YiB - yobibyte (24) 8 = 2 8 Bytes * - SI - Sistema Internacional de Unidades * - IEC - International Electrotechnical Comission