Sistemas Num´ericos Prof. Daniel Barros J´ unior, Prof. Eduardo Augusto Bezerra 16 de agosto de 2004 P´ agina: www.ee.pucrs.br/∼dbarros E-mail:
[email protected] Vers˜ ao: 1.15
1
Introdu¸ c˜ ao
1.1
Hist´ orico
O conceito de um computador digital pode ser tra¸cado retornando para Charles Babbage, que desenvolveu, em torno de 1830, um dispositivo computacional mecˆ anico. O primeiro computador digital, eletromecˆ anico, foi constru´ıdo em 1944 na Universidade de Harvard. A eletrˆ onica digital moderna iniciou em 1946 com um computador chamado ENIAC. A tecnologia digital evoluiu da v´ alvula para transistores e posteriormente para circuitos integrados complexos, alguns dos quais cont´em milh˜ oes de transistores.
1.2
Grandezas Digitais e Anal´ ogicas
Circuitos eletrˆ onicos podem ser divididos em duas categorias principais: Digital e Anal´ ogica. Eletrˆ onica Anal´ ogica envolve valores cont´ınuos.
Figura 1: Valores cont´ınuos
Eletrˆ onica Digital envolve valores discretos.
Figura 2: Valores Discretos
Vantagens da representa¸ca ˜o digital:
1
Dados digitais podem ser processados e transmitidos mais eficientemente e confiavelmente do que dados anal´ ogicos; Dados digitais tem uma grande vantagem quando o armazenamento ´e necess´ ario. Um sistema que usa tanto m´etodos anal´ ogicos como digitais ´e o compact disk (CD).
Figura 3: CD player Levando em conta estas e outras vantagens dos sistemas digitais sirgiu a necessidade de representar as informa¸co ˜es de forma num´erica. Um sistema na base B, possui um conjunto de B s´ımbolos, tamb´em chamado alfabeto. Na Tabela 1 na p´ agina 2 est˜ ao representadas as bases utilizadas freq¨ uentemente. Base 2: Base 8: Base 10: Base 16:
0 0 0 0
1 1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8
9 9
A
B
C
D
E
F
Tabela 1: Base num´ericas
2
Sistema Bin´ ario
O sistema bin´ ario ´e o mais elementar pois possui apenas dois s´ımbolos. Na seq¨ uˆencia bin´ aria, cada digito ´e chamado de BIT (Binary Digit). Na Figura 4 tem-se um n´ umero bin´ ario com seu BIT mais significativo (MSB) e o bit menos significativo (LSB) sendo enfatizados.
101001 LSB (Least Significant Bit) (Bit Menos Significativo) MSB (Most Significant Bit) (Bit Mais Significativo) Figura 4: MSB e LSB Visando facilitar a leitura, os bits s˜ ao agrupados conforme mostra a Tabela 2, estes grupos recebem nomes espec´ıficos. A principal finalidade de agrupar os bits est´ a em facilitar o controle dos digitos. 4 bits 8 bits 16 bits
Nibble Byte Word
Tabela 2: Agrupamentos de Dados
2
3
Tabela dos N´ umeros Inteiros
A Tabela 3 mostra os n´ umeros decimais de 0 at´e 16 e seus respectivos valores em bin´ ario, octal e haxadecimal. Decimal (10) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Bin´ ario (2) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10000
Octal (8) 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20
Hexadecimal (16) 0 1 2 3 4 5 6 7 8 9 A B C D E F 10
Tabela 3: Convers˜ oes Conforme pode ser observado na Tabela 3 para cada digito de um n´ umero bin´ ario dobram-se as linhas da tabela, sendo o n´ umero de possibilidades dado por 2n , onde n ´e o n´ umero de digitos do n´ umero bin´ ario.
4
Convers˜ ao de um n´ umero decimal inteiro para um base B
Exemplo 1: Converter 246810 para a base 16 (hexa). Solu¸ca ˜o: 2468 16 2464 154 16 4 144 9 10 0 Sentido de 9 Leitura
16 0
246810 = 9A416 Exemplo 2: Converter 21710 para a base 8 (octal). Solu¸ca ˜o:
3
217 216 1
8 27 24 3 Sentido de Leitura
8 3 0 3
8 0
21710 = 3318 Exemplo 3: Converter 4510 para a base 2 (bin´ ario). Solu¸ca ˜o: 45 44 1
2 22 22 0
2 11 10 1 Sentido de Leitura
2 5 4 1
2 2 2 0
2 1 0 1
2 0
4510 = 1011012 Base B para decimal. 1011012 = 1.25 + 0.24 + 1.23 + 1.22 + 0.21 + 1.20 = 4510
5
Convers˜ ao de um n´ umero octal ou hexadecimal para a base bin´ aria
Exemplo 1: 23578 para bin´ ario. Solu¸ca ˜o: 28 −→ 0102 38 −→ 0112 58 −→ 1012 78 −→ 1112 23578 = 010 011 101 1112 23578 = 0100111011112 Exemplo 2: 4A0516 para bin´ ario. Solu¸ca ˜o: 416 −→ 01002 A16 −→ 10102 016 −→ 00002 516 −→ 01012 4A0516 = 0100 1010 0000 01012 4A0516 = 01001010000001012
6
Convers˜ ao de um n´ umero octal em hexa e hexa em octal
Exemplo 1: 1278 para hexadecimal. Solu¸ca ˜o:
4
1278 = 001 010 1112 = 1278 = 0 0101 01112 = 5716 1278 = 0010101112 = 5716 Exemplo 2: 328 para hexadecimal. Solu¸ca ˜o: 328 = 011 0102 = 328 = 01 10102 = 1A16 328 = 0110102 = 1A16 Exemplo 3: C316 para octal. Solu¸ca ˜o: C316 = 1100 00112 = C316 = 11 000 0112 = 3038 C316 = 110000112 = 3038 Exemplo 4: 2316 para octal. Solu¸ca ˜o: 2316 = 0010 00112 = 2316 = 00 100 0112 = 438 2316 = 001000112 = 438
7
Convers˜ ao de fra¸ co ˜es decimais para base B
Regra da multiplica¸ca ˜o refletida: 1. Multiplicar o n´ umero decimal pela base B; 2. A parte inteira do resultado ´e utilizada como digito da base B; 3. A parte inteira ´e descartada; 4. Retornar ao passo 1 caso a parte fracion´ aria seja diferente de 0 (zero).
Exemplo 1: 0, 37510 para bin´ ario. Solu¸ca ˜o: 0, 375 × 2 = 0, 75 −→ 0 0, 75 × 2 = 1, 50 −→ 1 Descarta parte inteira 0, 50 × 2 = 1, 00 −→ 1 Termina o processo quando a parte fracion´ aria chega at´e 0 (zero). 0, 37510 = 0, 0112 Obs.: 0, 0112 = 0.20 + 0.2−1 + 1.2−2 + 1.2−3 = 0, 25 + 0, 125 = 0, 37510 Exemplo Solu¸ca ˜o: 0, 2 × 0, 4 × 0, 8 × Descarta 0, 6 ×
2: 0, 210 para bin´ ario. 2 = 0, 4 −→ 0 2 = 0, 8 −→ 0 2 = 1, 6 −→ 1 parte inteira 2 = 1, 2 −→ 1 5
Descarta parte inteira 0, 2 × 2 = 0, 4 −→ 0 0, 210 = 0, 00110011 . . .2 Exemplo 3: 3, 2510 para bin´ ario. Solu¸ca ˜o: Converter a parte inteira separadamente da parte fracion´ aria. 0, 25 × 2 = 0, 5 −→ 0 0, 5 × 2 = 1, 0 −→ 1 3, 2510 = 11, 012 Obs.: 11, 012 = 1.21 + 1.20 + 0.2−1 + 1.2−2 = 2 + 1 + 0, 25 = 3, 2510
8
Opera¸ co ˜es Aritm´ eticas no Sistema Bin´ ario
8.1
Adi¸ c˜ ao
A Tabela 4 apresenta o resultado da soma de dois n´ umeros de um bit para todas as situa¸co ˜es poss´ıveis. Pode-se verificar que na u ´ltima linha o resultado da soma n˜ ao pode mais ser armazenado em apenas um bit, gerando um segundo bit o qual ´e chamado de Transporte (Carry). 0+0= 0+1= 1+0= 1+1=
0 1 1 10
Tabela 4: Adi¸ca ˜o bin´ aria Na opera¸ca ˜o de soma tem-se 1 + 1 = 0 e vai 1 formando assim o 10 apresentado na Tabela 4. Ambos os n´ umeros positivos: Exemplo 1: 101012 + 101112 = Solu¸ca ˜o: 101012 + 101112 1011002 Exemplo 2: 111, 1012 + 11, 0012 = Solu¸ca ˜o: 111, 1012 + 11, 0012 1010, 1102 Exemplo 3: Neste exemplo ser´ a feita a opera¸ca ˜o em octal. 325, 718 + 14, 58 = Solu¸ca ˜o: 7 + 5 = 1210 = 148 1 + 5 + 4 = 1010 = 128
6
+
325, 718 14, 508 342, 418
N´ umero positivo grande e n´ umero negativo Exemplo: 000011112 + 111110102 = Solu¸ca ˜o: 000011112 = 1510 111110102 = −610 000011112 + 111110102 1000010012 Retirando o bit mais significativo tem-se 000010012 = 910 . N´ umero negativo grande e n´ umero positivo Exemplo: 000100002 + 111010002 = Solu¸ca ˜o: 000100002 = 1610 111010002 = −2410 000100002 + 111010002 111110002 Tem-se que 111110002 = −810 . Ambos negativos Exemplo: 111110112 + 111101112 = Solu¸ca ˜o: 111110112 = −510 111101112 = −910 111110112 + 111101112 1111100102 Retirando o bit mais significativo tem-se 111100102 = −1410 . Obs.: Em algumas referˆencias representa-se a base com n´ umeros por´em em outras s˜ ao utilizadas letras, a Tabela 5 apresenta um exemplo. Base 2 b 8 o 10 d 16 h Tabela 5: Nomenclatura das bases Exemplos: 11112 = 1111b 178 = 17o 1510 = 15d F16 = Fh
8.2
Subtra¸ c˜ ao
A Tabela 6 apresenta o resultado da subtra¸ca ˜o de dois n´ umeros de um bit para todas as situa¸co ˜es poss´ıveis. Pode-se verificar que na segunda linha o resultado 7
da subtra¸ca ˜o n˜ ao pode mais ser armazenado em apenas um BIT, gerando uma informa¸ca ˜o de Empresta 1. 0−0=0 0 − 1 = 1 e empresta 1 1−0=1 1−1=0 Tabela 6: Subtra¸ca ˜o bin´ aria
A opera¸ca ˜o de subtra¸ca ˜o de n´ umeros bin´ arios ´e equivalente a opera¸ca ˜o com os n´ umeros em decimal sendo modificado apenas o n´ umero m´ aximo 910 para 12 . Exemplo 1: 1112 − 1002 = Solu¸ca ˜o: 1112 710 − 1002 − 410 0112 310 Exemplo 2: 10002 − 1112 = Solu¸ca ˜o: 10002 − 1112 00012 Exemplo 3: 101002 − 10112 = Solu¸ca ˜o: 2010 101002 − 1110 − 10112 010012 910 Exemplo 4: 1101, 12 − 1102 = Solu¸ca ˜o: 1101, 12 − 110, 02 0111, 12 Exemplo 5: Neste exemplo ser´ a feita a opera¸ca ˜o em octal. 35218 − 16748 = Solu¸ca ˜o: 118 − 48 = 58 118 − 78 = 28 148 − 68 = 68 35218 − 16748 16258 Obs.: Outro m´etodo para fazer uma opera¸ca ˜o de subtra¸ca ˜o: Exemplo 1: 10100102 − 10011112 = Solu¸ca ˜o:
8
10100102 − 10011112 00000112
⇒ A⇒
01011012 + 10011112 11111002
⇒ R ⇒ 00000112
Exemplo 2: 110001102 − 10111112 = Solu¸ca ˜o: 110001102 − 010111112 011001112
8.3
⇒ A⇒
001110012 + 010111112 100110002
⇒ R ⇒ 011001112
Multiplica¸ c˜ ao
A Tabela 7 apresenta o resultado da multiplica¸ca ˜o de dois n´ umeros de um bit para todas as situa¸co ˜es poss´ıveis. 0×0=0 0×1=0 1×0=0 1×1=1 Tabela 7: Multiplica¸ca ˜o bin´ aria
Exemplo 1: 101012 × 1112 = Solu¸ca ˜o: 101012 × 1112 10101 2 + 10101 2 + 10101 2 100100112
×
8.4
2110 710 14710
Divis˜ ao
A opera¸ca ˜o de divis˜ ao utiliza de forma conjunta as opera¸co ˜es de multiplica¸ca ˜o e subtra¸ca ˜o. Exemplo 1: 10112 ÷ 11012 = Solu¸ca ˜o: 10112 ÷ 11012 = 0, 110112
9 9.1
Complemento de 1 e complemento de 2 Complemento de 1
Altera¸ca ˜o de todos os 1s por 0s e todos os 0s por 1s. 10110010 ⇒ n´ umero bin´ ario 01001101 ⇒ complemento de 1 do n´ umero bin´ ario acima 9
9.2
Complemento de 2
Complemento de 2 = (Complemento de 1) + 1 Exemplo 1: 101100102 = Solu¸ca ˜o: 10110010 N´ umero Bin´ ario ⇓ ⇓ 01001101 Complemento de 1 + 1 ⇓ 01001110 Complemento de 2
10
Representa¸ c˜ ao de um n´ umero com sinal
Existem trˆes maneiras de um n´ umero inteiro com sinal ser representado na forma bin´ aria: Sinal-Magnitude, Complemento de 1 e Complemento de 2. Os n´ umero n˜ ao inteiros e muito pequenos ou muito grandes podem ser representados na forma de ponto flutuante.
10.1
Bit de Sinal
O bit mais a esquerda ´e o sinal do n´ umero bin´ ario, se for 1 o n´ umero ´e negativo e se for 0 o n´ umero ´e positivo.
10.2
Sinal-Magnitude
Quando um n´ umero est´ a representado em Sinal-Magnitude o bit mais a esquerda ´e o Bit de Sinal e os outros bits representam a magnitude do n´ umero. Exemplo: +2510 = 000110012 −2510 = 100110012 Note que para reprentar os n´ umeros +25 e −25 apenas o primeiro bit foi alterado.
10.3
Complemento de 1
Na representa¸ca ˜o de n´ umeros negativos em complemento de 1 todos os bits do n´ umero devem ser negados individualmente. Exemplo: +2510 = 000110012 −2510 = 111001102
10.4
Complemento de 2
Na representa¸ca ˜o de n´ umeros negativos em complemento de 2 deve-se fazer o complemento de 1 do n´ umero e somar 1. Exemplo: +2510 = 000110012 −2510 = 111001112 A Tabela 8 apresenta os n´ umeros bin´ arios de 4 bits em complemento de 2. Para converter o n´ umero 2 para −2 realiza-se a opera¸ca ˜o abaixo: 0010 → Complemento de 1 → 1101 + 1 = 1110 onde 1110 = −2.
10
1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111
−8 −7 −6 −5 −4 −3 −2 −1 0 1 2 3 4 5 6 7
Tabela 8: Complemento de 2
11
Valor em decimal de um n´ umero com sinal
Sinal-Magnitude: 100101012 = −2110 00101012 = 24 + 22 + 20 = 16 + 4 + 1 = 2110 Complemento de 1: 000101112 = +2310 24 + 22 + 21 + 20 = 16 + 4 + 2 + 1 = +2310 111010002 = −2310 −27 + 26 + 25 + 23 = −128 + 64 + 32 + 8 = −2410 −24 + 1 = −2310 Complemento de 2: 010101102 = +8610 26 + 24 + 22 + 21 = 64 + 16 + 4 + 2 = +8610 101010102 = −8610 −27 + 25 + 23 + 21 = −128 + 32 + 8 + 2 = −8610
12 12.1
Exerc´ıcios e Bibliografia Exerc´ıcios
Realize as convers˜ oes abaixo: 0, 12510 para bin´ ario 0, 10112 para decimal AF 2Ah para bin´ ario 73218 para hexadecimal
12.2
Bibliografia
Entre os livros recomendados temos: Digital Fundamentals, Thomas L. Floyd, Prentice Hall ´ Elementos de Eletrˆ onica Digital, Idoeta e Capuano, Erica
11