icc-04 sistemas numéricos

49
Números e Aritmética Binária

Upload: nicola-zagari

Post on 18-Dec-2014

5.206 views

Category:

Technology


1 download

DESCRIPTION

Números e Sistemas Numéricos (binário, octal e hexadecimal). Ponto Fixo, Ponto Flutuante, Aritmética Binária e Códigos de Caracteres Decimais.

TRANSCRIPT

Page 1: ICC-04 Sistemas Numéricos

Números e Aritmética Binária

Page 2: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 2

Introdução� Computador � manipula/armazena informação na forma de números� Info = instruções, dados

� Sistema numérico padrão � decimal (0,..., 9)� Computador � sistema binário

� Vantagens:� Necessidade de apenas 2 níveis de tensão nos circuitoseletrônicos

� Programas � expressões algébricas � representadas pela álgebra booleana, que é baseada em sistema binário

Page 3: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 3

O Conceito de Número� Número

� Expressa quantidade em relação à uma unidade

� Numeral� Símbolos que representam números

� Sistemas Numéricos:� Algarismos: “numerais de valor próprio”

� Usados para gerar os numerais para todos os números

� Base: quantidade de algarismos

Page 4: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 4

Sistema Decimal

� Posicional

6903 = 6 x 103 + 9 x 102 + 0 x 101 + 3 x 100

6903 = 6.000 + 900 + 0 + 3

Numeral Base

Algarismo

Page 5: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 5

Sistema Binário

� Posicional� Algarismos: 0 e 1� Base: 2

101b = 1 x 22 + 0 x 21 + 1 x 20

101b = 4 + 0 + 1 = 5d

Page 6: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 6

Correspondência entre entre os dezesseis primeiros numerais decimais e binários

DECIMAL BINÁRIO DECIMAL BINÁRIO

0 0 8 1000

1 1 9 1001

2 10 10 1010

3 11 11 1011

4 100 12 1100

5 101 13 1101

6 110 14 1110

7 111 15 1111

Page 7: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 7

Números Reais e Conversões de Bases

� Decimal fracionário: 1,8125

1,8125 = 1 x 100 + 8 x 10-1 + 1 x 10-2 + 2 x 10-3 + 5 x 10-4

1,8125 = 1 + 0,8 + 0,01 + 0,002 + 0,0005

� Binário fracionário: 1,1101

1,1101 = 1 x 20 + 1 x 2-1 + 1 x 2-2 + 0 x 2-3 + 1 x 2-4

Page 8: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 8

Conversão entre Binário e Decimal

� Representações binária e decimal não alteram quantidade representada

� Conversão para Decimal� Ex.1:

1001b = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20

= 8 + 0 + 0 + 1 = 9d� Ex.2:

1,0110b = 1 x 20 + 0 x 2-1 + 1 x 2-2 + 1 x 2-3 + 0x2-4

= 1 + 0 + 0,25 + 0,13 + 0 = 1,38d

Page 9: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 9

Conversão para Binário

� Caso N seja inteiro: p.ex., 1919

1 9

1 4

0 2

0 1

1 0 19d = 10011b

2

2

2

2

2

Page 10: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 10

� Caso N seja menor que 1: p.ex., 0.690,69 x 2 = 1 ,380,38 x 2 = 0,76

0,76 x 2 = 1,520,52 x 2 = 1,04

0,04 x 2 = 0,08 0,08 x 2 = 0,16

0,69d = 0,101100...b

Conversão para Binário

Page 11: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 11

Conversão para Binário� Caso N seja fracionário e maior que 1?Ex.: Converter o decimal 19,69 para a base 2:

� • Converter a parte inteira19d = 10011b, conforme visto anteriormente.

� • Converter a parte fracionária0,69d = 0,101100b, conforme visto anteriormente

� • Unir as partes

19,69d = 10011,101100b

Page 12: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 12

Outras Bases Numéricas� Sistema Octal

� Base: 8� Algarismos: 0, 1, 2, 3, ..., 7

� Sistema Hexadecimal� Base: 16� Algarismos: 0, 1, 2, ..., 9, A, B, C, D, E, F

� 3 dígitos binários � 8 (23) números� 4 dígitos binários � 16 (24) números

Page 13: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 13

Conversão do Sistema Hexadecimal

� Correspondência das bases 2, 8 e 16:

2 3 7 4 , 6 4 5 2 => octal---- ------ ------ ------ ------ ------ ------ ------1 0 0 1 1 1 1 1 1 0 0 , 1 1 0 1 0 0 1 0 1 0 1 0 => binário------ -------- --------- -------- -------- --------

4 F C , D 2 A => hexa

Page 14: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 14

De Hexadecimal para Decimal

7AB016 = 7 x 163 + 10 x 162 + 11 x 161 + 0 x 160

= 28.672 + 2.560 + 176 + 0

= 31.40810

Page 15: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 15

De Decimal para Hexadecimal

1989 16

5 124 16

12 7

=> ou seja, 198910 = 7C516

Page 16: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 16

De Hexadecimal para Octal1 F

----- ------

0001 1111 = 00 011 111

--- ----- ----

0 3 7

==> 1F16 = 378

Page 17: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 17

De Octal para Hexadecimal5 5

---- ----

101 101 = 10 1101

--- ------

2 D

=> 558 = 2D16

Page 18: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 18

Tipos de Informação

� Representadas por seqüências binárias� 4 bits � “nibble”� 8 bits � “byte”

� Pode ocupar 1 ou + palavras (word) na memória

Page 19: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 19

Tipos de Informação

InstruçõesPonto Fixo

InformaçãoNuméricos

Dados Ponto Flutuante

Não-numéricos (caracteres e outros)

Depende do fabricante do processador

Padrões deRepresentação

Page 20: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 20

Dados Numéricos

� Definidos com base nos fatores:� Tipos de números� Faixa de valores possíveis� Precisão do número� Custo do hardware

Page 21: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 21

Números em Ponto Fixo

� Dígitos para representar:� Parte inteira� Parte fracionária

� Cada dígito tem um peso de acordo com sua posição relativa à vírgula decimal (Notação Posicional)

Page 22: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 22

Números em Ponto Fixo

� 1,1101 é representado como:

� Vírgulas (ou pontos) não são representadas

� Cabe à instrução (processador) reconstituí-lo

00000001 (parte inteira)

11010000 (parte fracionária)

Page 23: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 23

Números em Ponto Fixo

� Números com sinal:� Bit mais a esquerda = 1. Número negativo

� Bit mais a esquerda = 0. Número positivo

� xn-1xn-2...x2x1x0

sinal magnitude (partes inteira e fracionária)

Page 24: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 24

Números em Ponto Fixo

� Faixa de representação de números inteiros com “n” bits:� -2n <= N <= 2n - 1

� Faixa de representação de frações com “n” bits:� 0 <= |N| <= 1 - 2-n

Page 25: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 25

Números em Ponto Flutuante� Para representar números muito grandes ou muito pequenos com, relativamente, poucos dígitos:

� 1,0 x 1018 = 1.000.000.000.000.000.000� pto. flutuante ponto fixo� Um número ponto flutuante tem a forma M x BE

onde M = mantissa; B = base e E = expoente

Em 1,0 x 1018 => M = 1,0; B = 10 e E = 18

Page 26: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 26

Números em Ponto Flutuante� Número em ponto flutuante é armazenado na memória como o par:� Uma Mantissa M (fração/inteiro)� Um Expoente E (inteiro)

� A base é constante (potência de r: 2, 10)� Precisão: número de bits de M� Faixa de valores possíveis: determinada por B e E (máximo 2n)

Page 27: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 27

Números em Ponto Flutuante� 1,0 x 1018, 0,1 x 1019, 1000000 x 1012, e 0,000001 x 1024 são equivalentes

� Normalização:� Só a parte fracionária da mantissa érepresentada

� Intenção � garantir o máximo de bits possíveis da mantissa para representar o número

Page 28: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 28

Números em Ponto Flutuante• Padrão IEEE 754 – normalizado, expoente em excesso 127

N = (-1)S x 1.M x 2E • precisão simples

31 30 23 22 0

• precisão dupla

63 62 52 51 32

31 0

S EXPOENTE EM EXECESSO MANTISSA

S EXPOENTE EM EXECESSO MANTISSA

MANTISSA

Page 29: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 29

Números em Ponto FlutuanteExemplo

-0,7510 = -0,112

Normalizando 1,12 2 -1

31 30 23 22 0

0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Exemplo: Qual o decimal correspondente ?

1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

N= - ( 1+0.5) x 2(129-127) = -1,5 x 4 = -6,0

31 30 23 22 0

Page 30: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 30

Números em Ponto Flutuante� A normalização restringe a magnitude |M| de uma mantissa fracionária à faixa (para números com B = 2):

0,5 <= |M| < 1 ou M = 0� 0,1000000...0 = 0,5� 0,1111111...1 < 1,0

Page 31: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 31

Números em Ponto Flutuante� Qual seria a precisão e a faixa de valores possíveis para um número representado em ponto flutuante?� Precisão

� Mantissa: se tem 24 bits, então precisão é de 224 = 16.777.216

� Faixa� Base e expoente: 8 bits � -28 a + 28 –1 = -256 até+255

� Logo, faixa fica de 2-256 a 2+255

Page 32: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 32

Números em Ponto Flutuante

� Como se representaria o número zero?� 0 x BE = 0 para todos os valores de E� Mas nem sempre a mantissa é exatamente zero...

� “E” deve ser um número negativo grande

Page 33: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 33

Números em Ponto Flutuante

� Para efeitos de comparação com zero:� Expoente codificado em excesso -2k-1 (polarizador), assim

� Expoente 0000 representa número –8� Expoente 0001 representa número -7

Page 34: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 34

Aritmética Binária - Adição

ADENDO AUGENDO RESULTADO “VAI-UM ”

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

001000112010001112 +011010102

35107110 +10610

Page 35: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 35

Aritmética Binária - SubtraçãoMINUENDO SUBTRAENDO RESULTADO “EMPRESTA-

UM”0 0 0 0

0 1 1 1

1 0 1 0

1 1 0 0

010001112001000112 +001001002

71103510 +3610

Page 36: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 36

Aritmética Binária –Multiplicação

MUTIPLICANDO MULTIPLICADOR RESULTADO0 0 00 1 01 0 01 1 1

4 ...................... 1 0 03 ...................... 0 1 1 x

-------------1 0 0

1 0 0 + --------------

12 ................. 1 1 0 0

Page 37: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 37

Aritmética Binária – DivisãoDIVIDENDO DIVISOR QUOCIENTE

0 1 0

1 1 1

1 1 0 0 1 0 / 101

1 1 0 0 1 0 1 0 1- 1 0 1 1 0 1 0____0 0 1 0 1- 1 0 1________0 0 0 0

Page 38: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 38

Complementos

� Resolver a desvantagem do desperdício de 1 bit para armazenamento do sinal� Bit mais significativo é usado ao mesmo tempo para representação do sinal e de parte do número

Page 39: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 39

Complemento de 1� É o que falta para chegar ao valor máximo da cadeia de bits

� Ex.: Complemento de 0101 é o que falta para chegar a 1111. Basta subtrair de 1111

pois 11110101 –1010

01011010 +1111

Page 40: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 40

Complemento de 1

� Para simplificar, basta inverter os bits:

� Mas apresenta problemas para a (dupla) representação do zero (0000 e 1111) e na soma de 2 números negativos

0 � 11 � 0

0101

1010 Complemento de 1

Page 41: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 41

Complemento de 2� Calcular o complemento de 1� Somar 1

� Ex.: 0101 � Complemento de 1 = 10101 +

1011- 5 em complemento de 2

Page 42: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 42

Complemento de 2� Elimina a necessidade de subtrações� Bit carry deve ser desprezado

� Quando o resultado é negativo, o que se obtém é seu complemento de 2:

010001112110111012 +

1 001001002 = 3610

71103510 –3610

001000112101110012 +

1110111002 = DC16

35107110 –-3610

Page 43: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 43

Soma usando Complemento de 2

Ex.: 4 bits � faixa de –8 a +7

+ 2 � 0010 -3 � 1101 + 3 � 0011 -4 � 1100+ 5 � 0101 -7 � 11001

+ 4 � 0100 - 5 � 1011 + 5 � 0101 - 6 � 1010+ 9 � 1001 -11 � 11001

OVERFLOW

OK

+1 +1+1

+1+1

Page 44: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 44

Caracteres

� Armazenamento e transmissão de infotextuais� Definição de códigos em que combinações de bits representam letras, algarismos usados em textos, pontuação, etc.

� � caracter

Page 45: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 45

Códigos de Caracteres Decimais� Conversão de binário-decimal denúmeros decimais no formato texto:� BCD: Binary Coded Decimal

� Representado pelo seu equivalente de 4 bits

� EBCDIC: Extended BCD Interchange Code� Igual ao BCD + 4 bits (campo zonado) que não são usados para dados numéricos

� ASCII: � Princípio igual ao do EBCDIC

Page 46: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 46

Códigos de Caracteres Decimais

� Excesso-3:� Igual ao BCD mais 0011 (3)

� 2-entre-5:� Cada dígito decimal é representado por uma seqüência de 5 bits contendo dois 1`s e três 0`s.

Page 47: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 47

Códigos de Caracteres Decimais

Dígito CÓDIGO DECIMALDecimal BCD EBCDIC ASCII Excesso-3 2-entre-5

0 0000 11110000 00110000 0011 11000 1 0001 11110001 00110001 0100 000112 0010 11110010 00110010 0101 001013 0011 11110011 00110011 0110 001104 0100 11110100 00110100 0111 010015 0101 11110101 00110101 1000 010106 0110 11110110 00110110 1001 011007 0111 11110111 00110111 1010 100018 1000 11111000 00111000 1011 100109 1001 11111001 00111001 1100 10100

Page 48: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 48

Paridade� Paridade de um caractere é um bit extra usado para detecção de erro simples (como no caso do código 2-entre-5).� Paridade par: número de 1`s do caractere é par � bit de paridade par = 0

� Paridade ímpar: número de 1`s do caractere é par � bit de paridade ímpar = 1

Page 49: ICC-04 Sistemas Numéricos

Introdução à Ciênciada Computação

Eduardo Nicola F. Zagari 49