FAC - Universidade Federal Fluminenseboeres/slides_FAC/parte5.pdf · 2013-10-09 · 12 Bit n-1 tem...

46
1 http://www.ic.uff.br/~boeres/FAC.html

Transcript of FAC - Universidade Federal Fluminenseboeres/slides_FAC/parte5.pdf · 2013-10-09 · 12 Bit n-1 tem...

1

http://www.ic.uff.br/~boeres/FAC.html!

2

  Dois tipos de complemento •  Complemento a base •  Complemento a base menos um •  Por isso temos complemento a 2 (base 2) e

complemento a 1 (base 2 -1 )

3

  Significado: o que falta para completar um valor •  Por exemplo: complemento de um ângulo

agudo é o que falta para chegar a 900

  Em operações aritméticas •  o que falta a um número N para chegar ao

valor da base

  Complemento a base de N Bn – N •  N = o número •  n = quantidade de algarismos utilizados

4

  Seja n = 5 (5 dígitos)   Base 10 e N = (763)10

•  C10 de N: 105 – (763)10 = (99237)10

  Base 2 e N = (110)2 •  C2 de N: 25 – (110)2 = (11010)2

5

  Na prática, cálculo de complemento na base (fica mais rápido) 1.  Subtrair N do maior algarismo na base

considerada 2.  Somar 1 ao resultado

  Na base 2, colocar 1 em cada algarismo •  A etapa 1 define complemento a 1 (C1), ou

seja, complemento a B -1

6

  Base 2 e N = (110)2 •  Vimos que C2 de N: 25 – (110)2 = (11010)2

•  Analogamente:

Maior número 1 1 1 1 1 N 0 0 1 1 0 subtração 1 1 0 0 1 Soma 1 0 0 0 0 1 resultado 1 1 0 1 0

7

  Para realizar C2 mais rapidamente: 1.  Inverter cada algarismo de N 2.  Somar 1 ao resultado

N 0 0 1 1 0 inversão 1 1 0 0 1

Soma 1 0 0 0 0 1 resultado 1 1 0 1 0

8

  Vantagens: •  Representação única do zero •  A UAL só tem somador para fazer + e –,

pois: – A – B = A + (C2 (B))

– É preciso considerar os n dígitos da representação de dados

9

  Seja n = 6 o número de dígitos •  2n = 26 combinações

  Primeiro número não negativo 000000 •  Primeiro zero – sinal

  C2 (000000) •  000000 111111 + 1 000000 •  O vai 1 no 7º dígito é ignorado

10

  Logo assimetria na representação de números tanto positivos quanto negativos

  Então com n dígitos, a faixa de representação será

- (2n-1 -1) a (2n-1 – 1)

11

  Também utiliza bit de sinal (sabendo assim se o número é positivo ou negativo) •  Diferente da representação sinal magnitude na forma

como os bits são interpretados

  Com n bits

  Bits n-1 é indica se o número é positivo ou negativo, mas não é simplesmente o sinal

12

Bit n-1 tem valor 0   positivo , os outros bits são tratados como na

representação sinal magnitude •  de 0 a 2n-1 -1 •  Se bit de sinal é zero, o peso do dígito n-1 é zero no somatório

que calcula o número

Bit n-1 tem valor 1

  o peso é 2n-1, que é subtraído do somatório

Faixa de representação de números

-2n-1 .... + (2n-1 -1 )

 

13

Entendendo na base decimal  Somar (+15) com (-12) considerando n=4  Maior número decimal com 4 dígitos: 9999

– 9999 – 12 = 9987

– 9987+1 = 9988

1 1 1 1

9 9 8 8

0 0 1 5

1 0 0 0 3 vai um desprezado!

14

Entendendo na base decimal  Somar (-15) com (-12) considerando n=4  Maior número decimal com 4 dígitos: 9999

•  Complemento a 10 de –  -15 : 9999 – 15 + 1 = 9985 –  - 12 : 9999 – 12 +1 = 9988

1 1 1 1

9 9 8 5

9 9 8 8

1 9 9 7 3 vai um desprezado!

15

Entendendo na base decimal  Resultado = 9974 é o complemento de:

•  9999-9973 = 26 •  26 + 1=27 •  Como os dois são negativos, resultado:

-27

16

Soma  Somar bit a bit inclusive o bit de sinal  Seja um número em C2 com n dígitos

 Ao somar, pode ocorrer i.  vai-um para fora do número ii.  vai-um do sinal

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

sinal bits da magnitude

17

  Se ocorrer i. e ii. sem overflow   se i. e ii. não ocorrerem sem overflow   Se apenas um ocorrer overflow

  Pode tratar overflow se •  Ambos os números possuem o mesmo sinal

e o sinal do resultado é oposto dos números

18

Subtração  C2 do subtraendo (se valor for + ou -)  Somar ambos números como anteriormente

19

  Representação com n = 16

  + 75 para C2?

+ 75 em binário 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1

C2, pois é número + 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1

20

  Representação com n = 16

  -119 em C2?

-119 em binário

21

  Representação com n = 16

  -119 em C2?

Em C2?

-119 em binário 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1

22

  Representação com n = 16

  -119 em C2?

-119 em binário 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1

Inverte, mantendo sinal

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

23

  Representação com n = 16

  -119 em C2?

-119 em binário 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1

Inverte, mantendo sinal

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

Soma 1 é o C2 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1

24

  Qual é o valor decimal correspondente ao binário em C2?

binário 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1

25

  Qual é o valor decimal correspondente ao binário em C2?

binário 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1

É negativo 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1

26

  Qual é o valor decimal correspondente ao binário em C2?

binário 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1

É negativo 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1

Inverte a magnitude 1 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0

27

  Qual é o valor decimal correspondente ao binário em C2?

  Calculando o inteiro: •  211+210+27+23+22+21+20 = •  2048 + 1024 + 128 + 8 + 4 + 2 + 1 = 3215

-3215

binário 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1

É negativo 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1

Inverte a magnitude 1 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0

Soma 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1

28

  Qual é o valor decimal correspondente ao binário em C2? outra forma de calcular – pela definição de C2

  Calculando o inteiro:

•  -32768+ 16384+ 8192+ 4096+ 512+ 256+ 64+ 32 + 16 + 1= -3215

binário 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1

É negativo 1 1 1 1 0 0 1 1 0 1 1 1 0 0 0 1

posição 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

no somatório -215 214 213 212 0 0 29 28 0 26 25 24 0 0 0 20

29

  Somar 1101 e 1011 que estão em SM

1 1 0 1

1 0 1 1

30

  Somar 1100 e 1011 que estão em SM •  Os dois são negativos: -4 e -3 respectivamente •  Resultado é negativo

Não ocorre i. e ii. sem overflow

-4 1 1 0 0

-3 1 0 1 1

-7 1 1 1 1

31

  soma de 1100 e 1011 passando para C2

  Vai um para o bit de sinal e ai, vai um para fora do número devido aos sinais negativos – logo correto

– O resultado é o C2 de -7

1 1

C2(-4) 1 1 0 0

C2(-3) 1 1 0 1

somando 1 0 0 1

resultado 1 0 0 1

32

  Somar 0100 e 0110

33

  Somar 0100 e 0110

  Os dois são positivos – estão em SM

34

  Somar 0100 e 0110

  Os dois são positivos – estão em SM

1

0 1 0 0

0 1 1 0

somando 1 0 1 0

35

  Somar 0100 e 0110

  Os dois são positivos – estão em SM

– Overflow: pois dois números positivos não dá negativo (vai um para o bit de sinal que não vai um outra vez é incorreto)

1

0 1 0 0

0 1 1 0

somando 1 0 1 0

36

  Somar 1010 e 1101 que estão em C2

37

  Somar 1010 e 1101 que estão em C2

  Só para saber o decimal correspondente: •  Passar para SM •  1 010 inverte magnitude 1 101 •  Soma 1 1 110 •  Logo 1010 em C2 é -6 em decimal •  No caso de 1101 em C2 é -3 em decimal

38

  Então somar 1010 e 1101 que estão em C2

1

1 0 1 0

1 1 0 1

somando 0 1 1 1

39

  Então somar 1010 e 1101 que estão em C2

  Está incorreto, pois dá positivo a soma de dois números negativos (não vai um na magnitude e vai um no sinal overflow).

1

1 0 1 0

1 1 0 1

somando 0 1 1 1

40

  Então somar 1010 e 1101 que estão em C2

  Está incorreto, pois dá positivo a soma de dois números negativos (não vai um na magnitude e vai um no sinal overflow).

1

1 0 1 0

1 1 0 1

somando 0 1 1 1

41

  Soma – somas normais

  Subtração – soma com C2 do minuendo (qualquer que seja o sinal)

  Se resultado é positivo: valor decimal corresponde ao da magnitude

  Se resultado é negativo: converter para SM para saber decimal

42

  Quando o resultado de uma operação aritmética é maior do que o número de bits pode representar

  O processador deve sinalizar quando ocorre overflow •  Por que?

 

43

  Um caractere representado por um padrão de bits   Vários dispositivos de entrada e saída trabalham com

8 bits

  Um código padrão denominado ASCII (American Standard for Computer Information Interchange) •  define um padrão de sequência diferente para cada

caractere

44

  Exemplo: 0100 0001 é 41hex ou 6510 e representa o caracter 'A‘

0100 0010 é 42hex ou 6610 e representa o caracter 'B'

  Uma propriedade do ASCII é que se padrões de bits são comparáveis •  'A' <'B‘? •  Útil para ordenação alfabética

45

Atenção:

 'a'(61hex) é diferente de 'A' (41hex)  '8' (38hex) é diferente do inteiro 8

•  Representação ASCII do caracter '8': 0011 1000 Representação ASCII do caracter '0' é 48 (decimal) ou 30 (hex) Representação ASCII do caracter '9' é 57 (decimal) ou 39 (hex)

 

46

  Como traduzir um string de caracteres para inteiro? •  O menor caracter “vale” 48

  string '354‘ para seu inteiro

  Lê '3' Traduz '3' para 3 : do código ASCII subtrai 48 inteiro= 3 ×102 = 300

  Lê '5' Traduz '5' para 5: do código ASCII subtrai 48 inteiro= inteiro + 5 ×101 = 350

  Lê '4' Traduz '4' para 4 : do código ASCII subtrai 48 inteiro= inteiro + 4 ×100 = 354