Sistemas de Numeração e Aritmética Binária

29
01000-RH/FA-284 Departamento de Formação e Aperfeiçoamento Profissional Sistemas de Numeração Aritmética Binária Gerência do Centro de Formação e Aperfeiçoamento Profissional Coordenação de Eletrônica, Telecomunicações e Informática Industrial Sete Lagoas - Janeiro de 2007 Treinamento & Desenvolvimento

Transcript of Sistemas de Numeração e Aritmética Binária

Page 1: Sistemas de Numeração e Aritmética Binária

01000-RH/FA-284

Departamento de Formação e Aperfeiçoamento Profissional

Sistemas de Numeração

Aritmética Binária

Gerência do Centro de Formação e Aperfeiçoamento Profissional Coordenação de Eletrônica, Telecomunicações e Informática Industrial Sete Lagoas - Janeiro de 2007

Treinamento & Desenvolvimento

Page 2: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

ÍNDICE

1. SISTEMAS DE NUMERAÇÃO ............................................................................................................................ 01

1.1. Sistema decimal . .......................................................................................................................................... 01

1.2. Sistema binário .. .......................................................................................................................................... 02

1.2.1 Conversão de decimal para binário .................................................................................................. 04

1.3. Sistema octal ................................................................................................................................................ 06

1.4. Sistema hexadecimal ..................................................................................................................................... 09

1.5. Conversão de bases ....................................................................................................................................... 12

1.5.1. Binário para octal ............................................................................................................................. 12

1.5.2. Octal para binário ............................................................................................................................. 12

1.5.3. Binário para hexadecimal ................................................................................................................. 13

1.5.4. Hexadecimal para binário ................................................................................................................. 13

2. CÓDIGOS BINÁRIOS .......................................................................................................................................... 14

2.1. Codificação BCD .......................................................................................................................................... 14

2.2. Código Gray ...... .......................................................................................................................................... 15

2.3. Código Aiken ..... .......................................................................................................................................... 17

2.4. Código Johnson . .......................................................................................................................................... 17

2.5. Código ASCII .... .......................................................................................................................................... 18

3. ARTIMÉTICA BINÁRIA ...................................................................................................................................... 20

3.1. Adição .............. .......................................................................................................................................... 20

3.2. Subtração ........... .......................................................................................................................................... 20

3.3. Multiplicação ..... .......................................................................................................................................... 21

3.4. Divisão .............. .......................................................................................................................................... 22

3.5. Representação de números binários com sinal .............................................................................................. 23

3.5.1. Sinal Magnitude ............................................................................................................................... 23

3.5.2. Sinal Complemento a 1 – SC1 ......................................................................................................... 23

3.5.3. Sinal Complemento a 2 – SC2 ......................................................................................................... 24

3.6. Operações com números binários em SC2 .................................................................................................... 25

3.7. Operações com números codificados em BCD ............................................................................................. 26

3.7.1. Soma em BCD .................................................................................................................................. 26

3.7.2. Subtração em BCD ........................................................................................................................... 27

Page 3: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

1

1. SISTEMAS DE NUMERAÇÃO Uma característica fundamental dos computadores é a sua habilidade de representar fisicamente números e realizar operações com estes números. Os computadores atuais utilizam o sistema binário ou base 2. Caso usassem a base 10 os computadores deveriam ter dez estados distintos. A cada um destes estados corresponderia a um dos dez dígitos do sistema decimal. Por outro lado, o sistema de base 2 possui apenas dois estados diferentes, “0”e “1”, e é usado nos computadores digitais, pois eletronicamente podemos representar dois estados diferentes com facilidade, como por exemplo:

Lâmpada acesa = binário “1”. Lâmpada apagada = binário “0”.

Sistema decimal O sistema decimal, é baseado nos símbolos 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9, e no sistema de notação posicional, criado pelos árabes. Num sistema de numeração posicional o algarismo situado á extrema direita do número é o de menor valor significativo e o da extrema esquerda é o de maior valor significativo. Logo, um símbolo poderá ter diferentes valores, dependendo, apenas, da sua posição dentro do número. No sistema decimal a base é dez, pois ele possui dez algarismos simbólicos (0 a 9). Seja o número 1997, podemos escrevê-lo como se segue:

1997 = 1 x 103 + 9 x 10

2 + 9 x 10

1 + 7 x 10

0

onde 10x é o peso de uma determinada posição, e o x é o coeficiente dessa posição.

O número representado num dado sistema de numeração de notação posicional é constituído por: • Uma soma de várias parcelas; • Cada parcela é constituída de um produto de dois fatores; • Um dos fatores é o peso, cujo valor é a base do sistema elevado a um expoente que

corresponde a posição do algarismo dentro do número. Esta posição é crescente da direita para a esquerda, sendo que num número inteiro o algarismo da extrema direita corresponde a posição “0”. Caso o número seja fracionário, os coeficientes de posição da parte fracionária terão valores negativos decrescentes da esquerda para direita, e a primeira casa fracionária terá o coeficiente de posição “-1”.

1 3 8 , 2 7 Algarismos 2 1 0 -1 -2 Coeficientes de posição

Page 4: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

2

• O outro fator é um algarismo do sistema usado. Então teremos: onde: P = peso b = base c = coeficiente de posição Sejam os números: 1485 e 152

Portanto o valor de um dígito depende de sua posição dentro do número. Nos números 1485 e 152, o dígito 5 representa valores diferentes por ocupar posições diferentes dentro dos números. Em conseqüência dizemos que o “coeficiente de posição” do dígito 5 é diferente nos dois números. Como o peso de uma casa é dado pela base elevado ao coeficiente de posição, a casa das unidades tem peso 1 a das dezenas peso 10, das centenas peso 100, e assim por diante. Sendo assim o algarismo 5 do primeiro número do exemplo está representando 5 unidades, e o 5 do segundo número, 50 unidades ou 5 dezenas. Este conceito de coeficiente de posição e pesos é válido para sistemas de numeração de notação posicional de qualquer base, sendo válido então para o sistema binário, onde a base é dois, e os pesos serão portanto, potências de dois. Para os sistemas octal e hexadecimal, os pesos são potências de oito e de dezesseis respectivamente. Sistema binário Neste sistema os números são representados na base dois, portanto são usados apenas dois dígitos “0” (zero) e “1” (um). Seja o número 1011

2:

Os coeficientes de posição são os mesmos em qualquer base de numeração baseado no sistema de notação posicional, portanto no exemplo acima os coeficientes de posição são 0, 1, 2 e 3, da direita para a esquerda. Como o peso de cada casa do número corresponde à base elevado ao respectivo coeficiente de

posição (bx), para um número binário teremos: 2

3 2

2 2

1 2

0 8 4 2 1.

1 1 x 102

= 1 x 100 = 100

5 5 x 101

= 5 x 10 = 50

2 2 x 100

= 2 x 1 = + 2

152

1 1 x 103

= 1 x 1000 = 1000

4 4 x 102

= 4 x 100 = 400

8 8 x 101

= 8 x 10 = 80

5 5 x 100

= 5 x 1 = + 5 1485

P = b c

Page 5: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

3

Afim de se obter o valor decimal correspondente ao número binário 1011

2 , basta somarmos o

resultado da multiplicação de cada algarismo pelo seu peso correspondente: 1101

2=

(1 x 23) + (1 x 2

2) + (0 x 2

1) + (1 x 2

0) =

(1 x 8) + (1 x 4) + (0 x 2) + (1 x 1) =

8 + 4 + 0 + 1 = 1310

Como no sistema binário os algarismos são sempre 0 ou 1, a multiplicação do algarismo pelo seu peso vai ser sempre o próprio peso ( quando o algarismo for 1), ou zero (quando o algarismo for 0), portanto o decimal correspondente a um binário é igual a soma dos pesos das posições do número binário que contém o dígito 1, logo: 11011

2=

(1 x 24) + (1 x 2

3) + (1 x 2

1) + (1 x 2

0) =

(1 x 16) + (1 x 8) + (1 x 2) + (1 x 1) =

16+ 8 + 2 + 1 = 2710

Ao se trabalhar simultaneamente com números expressos em mais de um sistema de numeração, deve-se indicar a base do sistema como índice, para especificar em qual sistema o respectivo número está sendo expresso.

10112 = 11

10

Isto nos permite não confundir o binário 1011

2 com o decimal “mil e onze”, ou o decimal

“onze” com o binário 112.

Sendo “n” o número de bits de um número binário, o equivalente decimal máximo que

podemos obter será 2n - 1 e teremos 2

n combinações possíveis desses bits.

Então para um número binário de 3 bits teremos n = 3;

O maior número possível de ser representado será igual ao decimal 2n - 1 , ou seja:

23 - 1 = 8 - 1 = 7

10

Page 6: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

4

Conversão de decimal para binário Existem dois processos mais comumente usados na conversão de um número decimal em seu equivalente binário:

a) Método da subtração b) Método da divisão sucessiva

a) Método da subtração: Subtrairemos do número decimal a maior potência de 2 possível, e do resultado obtido subtrairemos novamente a maior potência de 2 possível, e assim sucessivamente, até que o número decimal seja reduzido a zero. Colocaremos agora o dígito 1 (um) sob cada potência de 2 que foi utilizada e o dígito 0 (zero) sob cada potência de 2 que não foi utilizada, tendo-se antes escrito as potências de 2 em ordem crescente da direita para a esquerda como no exemplo abaixo: Conversão de 122

10 para a base 2

122 - 2

6 = 122 - 64 = 58

58 - 25 = 58 - 32 = 26

26 - 24 = 26 - 16 = 10

10 - 23 = 10 - 8 = 2

2 - 21 = 2 - 2 = 0

Teremos então:

26 2

5 2

4 2

3 2

2 2

1 2

0

1 1 1 1 0 1 0 Logo:

12210

= 11110102

b) Método da divisão sucessiva: Neste método dividimos o número decimal por 2 e colocamos o resto como LSD (Least Significant Digit – Dígito Menos Significativo) do número binário que começa a se formar. Divida o quociente desta primeira divisão novamente por 2 e coloque o resto à esquerda do LSD e assim sucessivamente até que o quociente seja reduzido a zero.

Page 7: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

5

Exemplo 1: Conversão de 4610

para a base 2

46 2

0 23 2

1 11 2

1 5 2

1 2 2

0 1 2

1 0

Exemplo 2: Conversão de 53

10 para a base 2

53 2

1 26 2

0 13 2

1 6 2

0 3 2

1 1 2

1 0

Para converter um número fracionário para a base 2 proce-se da seguinte forma:

Multiplica-se a parte fracionária por 2. As partes inteiras obtidas durante a multiplicação serão obviamente 0 (zero) ou 1 (um) e formarão o número binário. Em cada multiplicação a parte inteira é desprezda e continuamos a multiplicação até que a parte fracionária seja reduzida a 0 (zero), ou sté um certo número de dígitos serem criados na hipótese de uma dízima.

b

a

Fazemos agora a leitura no sentido de a para b, sendo o último resto o bit de maior peso. Logo:

4610

= 1011102

b

a

Fazemos agora a leitura no sentido de a para b, sendo o último resto o bit de maior peso. Logo:

5310

= 1101012

Page 8: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

6

Exemplo 1: Converter 0,140625

2 para a base 2

0,140625 x 2 = 0,28125 0 0,28125 x 2 = 0,5625 0 0,5625 x 2 = 1,125 1 0,125 x 2 = 0,25 0 0,25 x 2 = 0,5 0 0,5 x 2 = 1,0 1

Exemplo 2: Converter 0,1852

2 para a base 2

0,1852 x 2 = 0,3704 0 0,3704 x 2 = 0,7408 0 0,7408 x 2 = 1,4816 1 0,4816 x 2 = 1,9632 1 0,9632 x 2 = 0,9264 0 0,9264 x 2 = 1,8528 1 0,8528 x 2 1,7056 1 0,7056 x 2 1,4112 1 0,4112 x 2 0,8224 0 0,8224 x 2 1,6448 1

Caso o número possua uma parte inteira, a conversão desta parte inteira se dá de uma das formas já vistas anteriormente de decimal inteiro para binário. Sistema Octal Neste sistema a base é 8 e terá portanto oito símbolos diferentes para representar os números, sendo eles os algarismos de 0 (zero) a 7 (sete). Os pesos para arepresentação octal são potência de 8, ou seja, 8 elevado ao coeficiente de

posição do algarismo. Para um número octal de 4 algarismos teremos os seguintes pesos: 83 8

2

81 8

0 521 64 8 1

Vejamos a representação de 0

10 a 15

10 em octal com 2 algarismos.

b

a Fazendo agora a leitura no sentido de a para b. Teremos:

0,14062510

= 0,0010012

a Neste caso teremos uma dízima. Determina-se a quantidade de casas em função da precisão desejada. Fazendo a leitura no sentido de a para b. Teremos:

0,185210

≅ 00110111012

b

Page 9: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

7

Decimal Octal Binário 00 00 0000 01 01 0001 02 02 0010 03 03 0011 04 04 0100 05 05 0101 06 06 0110 07 07 0111 08 10 1000 09 11 1001 10 12 1010 11 13 1011 12 14 1100 13 15 1101 14 16 1110 15 17 1111

O método de conversão de octal para decimal é idêntico ao aplicado na conversão de binário para decimal, exceto que, a base do sistema agora é 8. Para o número octal 274

8 de 3 algarismo teremos:

274

8=

(2 x 82) + (7 x 8

1) + (4 x 8

0) =

(2 x 64) + (7 x 8) + (4 x 1) =

128 + 56 + 4 = 18810

Para conversão de um número octal para o seu equivalente no sistema decimal temos o processo da divisão sucessiva, bem como o processo da subtração, só que agora a base é 8. O processo da divisão sucessiva, consiste em dividir o número que se quer converter sucessivamente por oito. O equivalente decimal será o número formado pelo resto das divisões, de maneira que o resto da última divisão seja o algarismo mais significativo do número.

Page 10: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

8

153 8

1 19 8

3 2 8

2 0

O processo da subtração consiste em subtrair do número decimal o maior valor possível de ‘

k x 8ns, onde k é um dos algarismos válidos para o sistema octal (0 ≤ k ≤ 7) e n é o coeficiente

de posição do algarismo. Continua-se o processo até chegarmos a zero como resultado da subtração. Exemplo 1: Converter de 133

10 para a base 8

133 - ( 2 x 82 ) = 133 - ( 2 x 64 ) = 133 - 128 = 5

5 - ( 0 x 81 ) = 5 - ( 0 x 8 ) = 5 - 0 = 5

5 - ( 5 x 80 ) = 5 - ( 5 x 1 ) = 5 - 5 = 0

Teremos então:

82 8

1 8

0

2 0 5 Logo:

12310

= 2058

a

b

Fazemos a leitura no sentido de a para b, sendo o último resto o bit de maior peso, teremos:

15310

= 2318

Page 11: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

9

Exemplo 2: Converter de 259110

para a base 8

2591 - ( 5 x 83 ) = 2591 - ( 5 x 512 ) = 2591 - 2560 = 31

31 - ( 0 x 82 ) = 31 - ( 0 x 64 ) = 31 - 0 = 31

31 - ( 3 x 81 ) = 31 - ( 3 x 8 ) = 31 - 24 = 7

7 - ( 7 x 80 ) = 7 - ( 7 x 1 ) = 7 - 7 = 0

Teremos então:

83 8

2 8

1 8

0

5 0 3 7 Logo:

259110

= 50378

Sistema hexadecimal Neste sistema a base é 16 e terá portanto dezesseis símbolos, a saber, de 0 (zero) a 9 (nove), mais as letras A, B, C, D, E, F, que corresponderão respectivamente aos números decimais 10, 11, 12, 13, 14 e 15. Vejamos a representação de 0 a 15 em hexadecimal

Decimal Hexadecimal Octal Binário 00 0 00 0000 01 1 01 0001 02 2 02 0010 03 3 03 0011 04 4 04 0100 05 5 05 0101 06 6 06 0110 07 7 07 0111 08 8 10 1000 09 9 11 1001 10 A 12 1010 11 B 13 1011 12 C 14 1100 13 D 15 1101 14 E 16 1110 15 F 17 1111

Page 12: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

10

Os pesos para a representação hexadecimal são potências de 16, ou seja, 16 elevado ao coeficiente de posição do algarismo. Para o número hexadecimal 4B2 de 3 algarismo teremos: 4B2

16=

( 4 x 162 ) + ( B x 16

1 ) + ( 2 x 16

0 ) =

( 4 x 162 ) + ( 11 x 16

1 ) + ( 2 x 16

0 ) =

( 4 x 256 ) + ( 11 x 16 ) + ( 2 x 1 ) =

1024 + 176 + 2 = 120210

Para conversão de um número hexadecimal para o seu equivalente no sistema decimal temos o processo da divisão sucessiva, bem como o processo da subtração, só que agora a base é 16. O processo da divisão sucessiva, consiste em dividir o número que se quer converter sucessivamente por dezesseis. O equivalente decimal será o número formado pelo resto das divisões, de maneira que o resto da última divisão seja o algarismo mais significativo do número. Exemplo: Converter 1036

10 para a base 16

1036 16

12 64 16

0 4 16

4 0

O processo da subtração consiste em subtrair do número decimal o maior valor possível de

k x 16n, onde k é um dos algarismos válidos para o sistema hexadecimal (0 ≤ k ≤ F) e n é o

coeficiente de posição do algarismo. Continua-se o processo até chegarmos a zero como resultado da subtração.

a

b

Fazemos a leitura no sentido de a para b, sendo o último resto o bit de maior peso, teremos:

103610

= 40C16

Page 13: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

11

Exemplo 1: Conversão de 28310

para a base 8

283 - ( 1 x 162 ) = 283 - ( 1 x 256 ) = 283 - 256 = 27

27 - ( 1 x 161 ) = 27 - ( 1 x 16 ) = 27 - 16 = 11

11 - ( 11 x 160 ) = 11 - ( 11 x 1 ) = 11 - 11 = 0

Teremos então:

162 16

1 16

0

1 1 B Logo:

12310

= 2058

Exemplo 2: Conversão de 1488

10 para a base 16

1488 - ( 5 x 162 ) = 1488 - ( 5 x 256 ) = 1488 - 1280 = 208

208 - ( 13 x 161 ) = 208 - ( 13 x 16 ) = 208 - 208 = 0

Teremos então:

162 16

1 16

0

5 D 0 Logo:

148810

= 5D016

Page 14: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

12

Conversão de bases A conversão de números representados numa base para outra base que seja potência inteira da

base na qual o número está representado (b1 = b2n ; sendo n inteiro) é extremamente simples.

Se temos por exemplo um número binário (base 2) e queremos representá-lo na forma octal

(base 8), temos uma base que é 8, ou seja 23 (dois elevado ao inteiro 3), então “8” pode ser

escrito na forma de uma potência inteira de “2”. Conversão de binário para octal Basta separar o número binário em grupo de três dígitos da direita para a esquerda e depois fazer a conversão de cada grupo de três separadamente como se fossem números binários independentes de três algarismos cada. Desta forma cada grupo de três bits irá originar um algarismo de um número octal de acordo com a tabela seguinte:

Binário Octal 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7

Exemplo: Converter o número 11010101

2 para a base 8

011 010 101 Binário

3 2 5 Octal

Conversão de octal para binário Basta fazer a conversão de cada dígito separadamente, de maneira que cada algarismo octal corresponderá a um número binário de 3 bits. Exemplo: Converter o número 754

8 para a base 2

7 5 4 Octal

111 101 100 Binário

Portanto: 11010101

2 = 325

8

Portanto: 754

8 = 11101100

2

Page 15: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

13

Conversão de binário para hexadecimal

Como 16 pode ser escrito na forma 24 ,para converter um número binário para sua forma

equivalente em hexadecimal, basta separar o número binário em grupos de quatro algarismos, da direita para a esquerda, e depois fazer a conversão de cada grupo de quatro separadamente como se fossem números binários independentes. Desta forma cada grupo de quatro bits será representado por um algarismo hexadecimal de acordo com a tabela abaixo:

Binário Headecimal 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F

Exemplo: Converter o número 1110100110

2 para a base 16

0011 1010 0110 Binário

3 A 6 Hexadecimalal

Conversão de hexadecimal para binário Basta fazer a conversão de cada dígito separadamente, de maneira que cada algarismo hexadecimal corresponderá a um número binário de 4 bits. Exemplo: Converter o número 5C3

16 para a base 2

5 C 3 Octal

0101 1100 0011 Binário

Portanto: 1110100110

2 = 3a6

16

Portanto: 5C3

16 = 10111000011

2

Page 16: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

14

2. Códigos Binários Codificação BCD Os dígitos do sistema numérico decimal de 0 até 9 podem ser representados pelos seus correspondentes binários de 4 bits. Esta representação tem a denominação de código BCD natural, ou código 8421. O código BCDn ou simplesmente BCD constitui a ponte entre os sistemas decimal e binário, possibilitando uma conversão direta entre os dois sistemas. Um dígito BCD é composto por uma seqüência de 4 dígitos binários que representam os números decimais de 0 a 9. As combinações que na conversão binário-decimal correspondem aos números 10 a 15 não são usadas no código BCD, porque a definição da forma do código BCD proíbe o uso destes números.

DECIMAL BCD 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 1010 1011

NÃO 1100 USADO 1101

1110 1111

Para representar um número decimal no código BCD, basta substituir cada algarismo do número pelo seu equivalente BCD de 4 algarismos. Logo, a representação BCD do número 1.348

10, é a seguinte:

1.348

10 = 0001.0011.0100.1000

BCD

Page 17: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

15

Código Gray ou Binário refletido Analisando uma contagem seqüencial crescente em binário, podemos observar que na passagem da combinação equivalente ao decimal 7 para a combinação seguinte, 4 bits mudam de estado de uma só vez e, mesmo entre algumas combinações consecutivas acontece a mudança de estado de mais de um bit por vez. Na prática, pode acontecer que estas mudanças de estado dos bits não ocorram simultaneamente e, durante estas transições poderíamos ter momentaneamente um número diferente num dado intervalo de tempo dt, fato que poderia causar problemas de funcionamento em circuitos seqüenciais. Em conseqência disto, foi criado o código Gray, cuja característica principal é que em uma contagem binária crescente, entre combinações consecutivas apenas um bit varia de estado. Embora tenha sido elaborado por Émile Baudot, criador do sistema multiplex por divisão de freqüência e, cujo nome se tirou a unidade de medida da taxa de modulação na transmissão de dados (Baud rate – Bd), este código leva o nome de Frank Gray, por ter sido este o introdutor deste código na solução de circuitos seqüenciais. Abaixo temos a representação do código Gray com 4 bits:

O código Gray é baseado no sistema de numeração de notação posicional, portanto cada casa tem um peso diferente, porém o peso de cada casa é determinado pela equação: Onde: P = peso x = coeficiente de posição Para se fazer a conversão para o sistema decimal, considera-se da esquerda para a direita o peso sendo positivo, o peso referente ao próximo bit 1 do número com o sinal negativo e assim sucessivamente alternando-se os sinais dos pesos. ( +, - , + , - ; + , etc...). A soma dos pesos com sesus respectivos sinais nos dará o seu equivalente decimal.

Exemplo 1: O equivalente decimal para o número 1011GRAY

= 15 – 3 + 1 = 1310

Exemplo 2: O equivalente decimal para o número 1101

GRAY = 15 – 7 + 1 = 9

10

A passagem direta do binário natural para o código Gray é feita do seguinte modo:

a) Acrescenta-se um zero à esquerda do número binário;

DECIMAL

GRAY

PESOS

15 7 3 1

0 0 0 0 0 1 0 0 0 1 2 0 0 1 1

Grupo A 3 0 0 1 0 4 0 1 1 0 5 0 1 1 1 6 0 1 0 1 7 0 1 0 0 8 1 1 0 0 9 1 1 0 1 10 1 1 1 1

Grupo B 11 1 1 1 0 12 1 0 1 0 13 1 0 1 1 14 1 0 0 1 15 1 0 0 0

P = 2x + 1

- 1

Page 18: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

16

b) Compara-se o bit de posição n com o bit n - 1 do número binário até que todos os

bits do número binário sejam comparados.

c) Na comparação, se os bits forem iguais coloca-se um bit 0 (zero) na posição n - 1 do número no código Gray que está sendo formado. Se forem diferentes coloca-se um bit 1 (um).

Coeficientes de Posição n 8 7 6 5 4 3 2 1 0

Binário 0 1 0 0 1 1 0 1 1

Comparação ≠ ≠ = ≠ = ≠ ≠ = Número no código Gray 1 1 0 1 0 1 1 0

Logo: 10011011

2 = 11010110

GRAY

A passagem direta do código Gray para o binário natural é feita do seguinte modo:

a) Acrescenta-se um zero à esquerda do número binário que será formado, sabendo-se que este terá a mesma quantidade de algarismos do número no código Gray;

b) Compara-se o bit zero acrescentado com o bit mais significativo do número Gray,

Assim, o bit no número binário cujo coeficiente de posição é n será comparado com o bit n - 1 do número Gray até que todos os bits do número Gray sejam comparados.

c) Na comparação, se os bits forem iguais coloca-se um bit 0 (zero) na posição n - 1 do

número binário que está sendo formado. Se forem diferentes coloca-se um bit 1 (um).

Coeficientes de Posição n 8 7 6 5 4 3 2 1 0

Gray 1 0 0 0 1 0 1 0

Número binário puro 0 1 1 1 1 0 0 1 1 Comparação ≠ ≠ ≠ ≠ = = ≠ ≠

Logo: 10001010

GRAY = 11110011

2

Page 19: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

17

Código Aiken Este é um código decimal usado para representar os algarismos de 0 à 9 do sistema decimal. É constituído das cinco primeiras e cinco últimas combinações do binário natural de 4 bits, sendo que o peso das casas são 2, 4, 2 e 1 como indica a tabela abaixo:

DECIMAL AIKEN PESOS

2 4 2 1

0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 1 0 1 1 6 1 1 0 0 7 1 1 0 1 8 1 1 1 0 9 1 1 1 1

Código Johnson O código Johnson é muito usado em circuitos seqüenciais como contadores digitais, devido a sua simplicidade construtiva e, assim como o código Gray, apenas um bit sofre transição a cada incremento do módulo de contagem, além de pode ser usado como um contador de módulo 10. Abaixo uma seqüência do código Johnson com 5 bits.

DECIMAL JOHNSON

0 0 0 0 0 0 1 0 0 0 0 1 2 0 0 0 1 1 3 0 0 1 1 1 4 0 1 1 1 1 5 1 1 1 1 1 6 1 1 1 1 0 7 1 1 1 0 0 8 1 1 0 0 0 9 1 0 0 0 0

Uma característica fundamental desde código é que dois números cuja soma é 9 são complementares. Exemplos:

a) 5 = 1011 AIKEN

e 4 = 0100 AIKEN

b) 3 = 0011

AIKEN e 6 = 1100

AIKEN

Page 20: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

18

CÓDIGO ASCII Para ter realmente utilidade, o computador deve ser capaz de manipular informações de natureza não numérica. Em outras palavras, o computador deve ter a capacidade de reconhecer códigos que representam números, letras e caracteres especiais. Tais códigos são classificados como códigos alfanuméricos. Nesses códigos cada caracter é representado por um número binário diferente, portanto se tivermos 8 bits disponíveis para representar estes caracteres podemos representar 256 caracteres diferentes. O mais comum dos códigos alfanuméricos é conhecido como ASCII , abreviação de American Standart Code for Information Interchange (Código Padronizado Americano para Troca de Informações), sendo muito utilizado pelos fabricantes de microcomputadores. A tabela abaixo mostra uma listagem do código ASCII de 8 bits. Para cada caracter aparece também seu equivalente hexadecimal. Esse código é muito usado na transmissão de informações alfanuméricas entre o computador e dispositivos externos de entrada/saída.

CÓDIGO ASCII HEX 0 1 2 3 4 5 6 7 8 9 A B C D E F

0 nul soh stx etx eot enq ack bel bs tab lf vt np cr so si 1 dle dc1 dc2 dc3 dc4 nak syn etb can em eof esc fs gs rs us 2 ! “ # $ % & ‘ ( ) * + , - . / 3 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 4 @ A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z [ \ ] ^ _ 6 ` a b c d e f g h i j k l m n o 7 p q r s t u v w x y z | ~

8 Ç ü é â ä à å ç ê ë è ï î ì Ä Å 9 É æ Æ ô ö ò û ù ÿ Ö Ü ¢ £ ¥ ₧ Ų

A á í ó ú ñ Ñ ª º ¿ ¬ ½ ¼ ¡ « »

B

C

¡

£

D ¤

¥

¦

§

¨

©

ª

­

E α β Γ Π Σ σ µ τ Φ Θ Ω δ ∞ ø ε ∩

F ≡ ± ≥

÷ ≈

° •

·

²

Para se obter o código ASCII de um caractere a partir da tabela, basta localizá-lo e observar em qual linha e qual coluna ele se encontra, copiando os números HEXA que as identificam, de forma que o algarismo que identifica a linha será sempre o algarismo mais significativo do número HEXA formado. Teremos então para cada caractere da tabela um correspondente HEXA de 2 algarismos, o que corresponde a um número binário de 8 bits. Exemplo: O código ASCII do caractere ® é A9

16

Page 21: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

19

Obs.: Os códigos 0016

à 1F16

representam caracteres especiais de controle.

CÓDIGO

SIGLA DENOMINAÇÃO HEXA DECIMAL

00 00 NUL Nulo 01 01 SOH Início de cabeçalho (CC) 02 02 STX Início de texto (CC) 03 03 ETX Fim de texto (CC) 04 04 EOT Fim de transmissão (CC) 05 05 ENQ Requisição (CC) 06 06 ACK Aceitação (CC) 07 07 BEL Atenção 08 08 BS Volta caractere (MF) 09 09 HT Tabulação horizontal (MF) 0A 10 LF Avanço de linha (MF) 0B 11 VT Tabulação Vertical (MF) 0C 12 FF Alimentação de Formulário (MF) 0D 13 CR Retorno de Carro (MF) 0E 14 SO Seleção de sub-conjunto suplementar 0F 15 SI Seleção de sub-conjunto básico 10 16 DLE Escape em enlace de dados (CC) 11 17 DC1 Controle de dispositivo 1 12 18 DC2 Controle de dispositivo 2 13 19 DC3 Controle de dispositivo 3 14 20 DC4 Controle de dispositivo 4 15 21 NAK Não aceitação (CC) 16 22 SYN Sincronismo (CC) 17 23 ETB Fim de bloco de transmissão (CC) 18 24 CAN Cancelamento 19 25 EM Fim de meio 1A 26 EOF Fim de arquivo 1B 27 ESC Escape 1C 28 FS Separador de arquivo 1D 29 GS Separador de grupo 1E 30 RS Separador de registro 1F 31 US Separador de unidade

Nota: (CC) Significa Controle de Comunicação (MF) Significa Modificador de Formato

Page 22: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

20

3. Aritmética Binária ADIÇÃO A adição de números binários é feita do mesmo modo que uma adição no sistema decimal, exceto que o transporte de uma coluna para outra envolve potências de dois no lugar de potências de dez. As quatro combinações possíveis na soma de dois bits são:

0 0 1 1 + 0 + 1 + 0 + 1 0 1 1 (1) 0

A quarta combinção indica que a soma "1 + 1" conduz ao transporte do dígito "1" da coluna 20

para a coluna 21. Numa adição de números de vários dígitos, a regra é que cada dígito

transportado de uma coluna, será somado à coluna de peso imediatamente superior. Na soma de números binários, assim como em qualquer outra base, as parcelas a serem somadas devem ser alinhadas de forma que os dígitos de mesmo peso fiquem sobrepostos uns aos outros.

101102 1011011

2 1011110

2

+ 10012 + 100101

2 + 11011

2

111112 10000000

2 1111001

2

SUBTRAÇÃO A operação de subtração de dois números binários oferece quatro combinações possíveis:

0 1 1 0 - 0 - 0 - 1 - 1 0 1 0 (1) 1

Page 23: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

21

Na última combinção o subtraendo é menor que o minuendo e a operação somente se realiza com a função "empresta um". Este é o método convencional de subtração que é bem conhecido da matemática do sistema decimal. Quando o dígito do subtraendo é menor que o dígito do minuendo, o dígito subtraído "empresta um" para o dígito do minuendo de peso imediatamente inferior. Da mesma forma que na adição, as parcelas a serem operadas devem ser alinhadas de forma que os dígitos de mesmo peso fiquem sobrepostos uns aos outros.

1000012 1011110

2 111101

2

- 111112 - 100111

2 - 11110

2

102 110111

2 11111

2

MULTIPLICAÇÃO A multiplicação de números binários é feita da mesma maneira que a dos números decimais. O processo, na verdade, é mais simples, já que os dígitos envolvidos são apenas "0's" e "1's", fazendo com que multipliquemos somente por "0" ou por "1".

Primeiramente, examina-se o bit menos significativo do multiplicador, que vai ser multiplicado pelo multiplicando; se este bit for "0", o resultado da multiplicação será "0", caso contrário o resultado será o próprio multiplicando. Tem-se então o primeiro produto parcial. A multiplicação é prosseguida multiplicando-se o próximo bit a esquerda do bit multiplicado anteriormente assim como ele, porém o produto parcial é deslocado uma casa à esquerda em relação ao produto parcial anterior. O processo continua até que o último bit do multiplicador seja multiplicado. Todos os produtos parciais são então somados, dando origem ao produto final.

1 0 0 12 Multiplicando

x 1 0 1 12 Multiplicador

1 0 0 1 1 0 0 1

Produtos

0 0 0 0 Parciais + 1 0 0 1 1 1 0 0 0 1 1

2 Produto Final

A maioria das máquinas digitais é capaz de somar apenas dois números binários por vez, por este motivo, os produtos parciais formados durante uma operação de multiplicação nestas máquinas não podem ser somados de uma só vez. Eles são somados dois a dois; ou seja, o primeiro é somado com o segundo e o resultado é somado ao terceiro, e assim por diante.

Page 24: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

22

1 1 0 1

2 Multiplicando

x 1 1 0 12 Multiplicador

1 1 0 1 1° Produto Parcial + 0 0 0 0 2º Produto Parcial deslocado à esquerda

1 1 0 1 Soma dos dois primeiros Produtos Parciais + 1 1 0 1 3º Produto Parcial deslocado à esquerda

1 0 0 0 0 0 1 Soma dos três primeiros Produtos Parciais + 1 1 0 1 4º Produto Parcial deslocado à esquerda

1 0 1 0 1 0 0 12 Produto Final

DIVISÃO O processo de divisão de um número binário (dividendo) por outro (divisor) é o mesmo utilizado na divisão de números decimais, também conhecido como divisão por processo longo. O processo prático é mais simples em binário porque, quando estamos verificando quantas vezes o dividendo é maior que o divisor, existem apenas duas possibilidades, 0 ou 1. 1 1 0 0

2 1 0 0

2

- 1 0 02 1 1

2

1 0 02

- 1 0 02

02

1 0 1 1 02 1 0 0 0

2

- 1 0 0 02 1 0

2 , 1 1

1 1 0 02

- 1 0 0 02

1 0 0 02

- 1 0 0 02

02

Page 25: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

23

REPRESENTAÇÃO DE NÚMEROS BINÁRIOS COM SINAL Na representação de números binários com sinal é necessário reservar um bit da palavra para indicar o sinal. Este bit é chamado de bit de sinal. Bit de Sinal = "0", indica que o número é positivo = "+" Bit de Sinal = "1", indica que o número é negativo = "-" 2.5.1 - SINAL MAGNITUDE - SM Nesta representação, o bit mais significativo da palavra, é usado para indicar o sinal, e o restante representa a magnitude, ou valor absoluto do número.

S Magnitude bs bn b3 b2 b1 b0 Bit Menos Significativo

Bit Mais Significativo Bit de Sinal

3.5.2 - SINAL COMPLEMENTO A UM - SC1 Complemento a um de um número binário consiste em analisar o número bit a bit e verificar quanto falta para este bit ser "1", ou seja, se o bit verificado for "0", deve ser somado "1" a ele para que fique igual a "1", então o complemento a um de "0" é "1"; se o bit verificado for "1", deve ser somado "0" porque o bit já é "1", então o complemento a um de "1" é "0". Conclui-se então que para obter-se o complemento a um de um número binário basta inverter os bits deste número. Considere o número 52 representado com 8 bits:

Se o bit de sinal for "0", o número representado é positivo e se encontra na forma binária normal. Se for "1", o número representado é negativo e se encontra na foma SC1. Na representação de números com sinal na forma SC1 com 8 bits, é possível representar números binários cujos equivalentes decimais estejam entre +127 e -127, inclusive.

Page 26: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

24

3.5.3 - SINAL COMPLEMENTO A DOIS - SC2 A definição geral de complemento de base, N de um número N é:

N = bn - N onde: N = número que se quer obter o complemento

N = complemento do número N b = base do sistema numérico n = quantidade de algarismos do número Para o número decimal 147, o seu complemento a dez é:

N= 103 - 147 = 1000 - 147 = 853

Para o número binário 00110100

2 = 52

10, o seu complemto a dois é:

N= 28 - 52 = 256 - 52 = 204

10 = 11001100

2

No sistema binário, o SC2 de um número, será sempre igual ao SC1 deste número somado com o número binário "1".

Existe um método para calcular o complemento em dois de um número binário através de um algoritmo rápido. Basta copiar os dígitos do número binário, da direita para a esquerda até encontrar o primeiro dígito "1". A partir daí, os dígitos seguintes serão complementados.

Na representação de números binários na forma SC2, se o bit de sinal for "0" o número representado é positivo e encontra-se na sua forma binária normal; se for "1", o número representado é negativo e encontra-se na forma SC2. Na forma SC2, é possível representar números entre +127 e -128, inclusive.

Page 27: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

25

DECIMAL HEXA BINÁRIO SM SC1 SC2

0 0 0000 0 0 0 1 1 0001 1 1 1 2 2 0010 2 2 2 3 3 0011 3 3 3 4 4 0100 4 4 4 5 5 0101 5 5 5 6 6 0110 6 6 6 7 7 0111 7 7 7 8 8 1000 0 -7 -8 9 9 1001 -1 -6 -7 10 A 1010 -2 -5 -6 11 B 1011 -3 -4 -5 12 C 1100 -4 -3 -4 13 D 1101 -5 -2 -3 14 E 1110 -6 -1 -2 15 F 1111 -7 0 -1

OPERAÇÕES COM NÚMEROS EM SC2 A operação de soma com números em SC2, é idêntica a de números binários normais, porém, o bit mais significativo do número representa o sinal. A operação de subtração é substituída pela operação de soma, para isto basta somar um número positivo com um número negativo, ou seja, o número que seria o subtraendo é colocado em sua forma SC2 e somado com o número que seria o minuendo. As operações em SC2 permite somar dois números quaisquer, independentes do sinal deles. Há três casos distintos, de soma em SC2, exemplificados com números de 8 bits: 1 - Soma de dois números positivos (bit 8 = "0") - O resultado também deverá ser um número positivo. Se o bit 8 for "1", indica que houve um overflow, e o resultado é um número maior que +127. Em SC2 seria necessário 9 bits para representar este número.

2 - Soma de dois números de sinais contrários - O resultado será sempre um número menor que o maior número possível de ser representado com o número de bits utilizados. O bit de sinal sempre indicará realmente o sinal do resultado, se o resultado é positivo, durante o processo de soma foi gerado um nono bit, e este é simplesmente desprezado do resultado. Se o resultado é negativo, ele estará na forma SC2.

Page 28: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

26

3 - Soma de dois números negativos (bit 8 = "1") - O resultado também deverá ser um número negativo. Se o bit 8 for "0", indica que houve um overflow, e o resultado é um número menor que -128. Em SC2 seria necessário 9 bits para representar este número. Se o bit de sinal for "1", foi gerado um nono bit durante o processo de soma, este bit é simplesmente eliminado do resultado, que estará na forma SC2.

OPERAÇÕES COM NÚMEROS BCD SOMA COM NÚMEROS BCD A adição de números em código BCD é realizada do modo convencional da adição de números binários, com algumas modificações nos resultados: 1 - Nas posições em que algum dígito BCD do resultado for maior que 910 (10012) deve ser adicionado a estes dígitos, o valor corretivo 01102 para convertê-lo para a forma BCD, isto sempre gerará um transporte que deverá ser adicionado ao dígito BCD seguinte.

Page 29: Sistemas de Numeração e Aritmética Binária

RH/FA – Gerência do Centro de Formação e Aperfeiçoamento Profissional ETI - Coordenação de Eletrônica, Telecomunicações e Informática.

27

2 - Se um dígito BCD do resultado for menor que 910 (10012), porém durante o processo de soma, houve um "vai um" deste dígito para o dígito BCD de peso imediatamente superior deve-se somar 01102 ao dígito que originou o transporte para convertê-lo para a forma BCD.

3 - Se um dígito BCD é menor que 10012 e durante o processo de soma não foi gerado nenhum transporte para outro dígito BCD, o resultado não necessita de correção e estará automaticamente na forma BCD.

SUBTRAÇÃO COM NÚMEROS BCD A subtração de números BCD é feita da forma convencional para números binários, necessitando às vezes de correções nos resultados. Para corrigir o resultado de uma subtração de dois números BCD de 8 bits, basta somar o valor corretivo 1111 10102 (complemento a dois de 0000 01102) ao resultado se, durante o processo de subtração tiver ocorrido a função “empresta um” do quarto para o quinto bit (isto ocorre quando o dígito BCD do minuendo é menor que o do subtraendo). Se não ocorrer este “empresta um” o resultado não necessita de correção, e já estará automaticamente na forma BCD.