Representação em excesso

Padrao de bits     SM   C2
     000            0    0
     001           +1   +1
     010           +2   +2
     011           +3   +3
     100            0   -4 
     101           -1   -3
     110           -2   -2
     111           -3   -1 

Utilizando as representações SM e C2 não podemos comparar dois números como inteiros sem sinal.
A representação em excesso permite que possamos comparar o padrão de bits referentes a cada inteiro com sinal, considerando que o padrão de bits representa inteiros sem sinal.
xbias=x + bias
Exemplo:
Padrao de bits     ISS   Excesso de 2
     000            0         -2
     001            1         -1
     010            2          0
     011            3         +1
     100            4         +2 
     101            5         +3
     110            6         +4
     111            7         +5
Necessita-se definir o número de bits a ser utilizado e o valor de bias.
Escolhendo o bias: Para obter uma distribuição homogênea de valores acima e abaixo de 0, escolhe-se bias igual a 2n-1 ou (2n-1)-1), onde n é o número de bits disponíveis
Dados 4 bits, o valor de bias será 23=8, de modo que o resultado represente metade de números positivos e metade de negativos.
Exemplo: valor a ser representado= +3, soma com bias +8, resultado 11, cuja representação é 1011
Dada a representação 0110, qual número ele está representando ?
0110 = 6 = x + bias = x + 8, x = 6-8=-2

Representação em ponto flutuante

Na representação em ponto fixo, a vírgula não é representada mas assumida em uma posição.
Nas máquinas atuais utiliza-se a vírgula na posição mais a direita para representar inteiros.
Números fracionários utilizam a representação em ponto flutuante.
Exemplo: 3,141592565
2,71828
1,0 x 10 -9
3.155.160.000 = 3,15576 x 10 9
Maior número com 32 bits: 2.147.483.648
Utiliza-se a notação científica:
Um dígito à esquerda do ponto decimal
1,0 x 10 -9, 3,15576 x 10 9
Notação científica normalizada: não possui zero antes da vírgula
0,1 x 10 -8, 10,0 x 10 -10, não normalizadas
1,0 x 10 -9, 1,0 x 10 -9, normalizadas
Números binários em notação científica normalizada
(1,0)2 x 2 -1
Representação de um número na base 2 em ponto flutuante
(1,mmmmm)2 x 2 yyy
Vantagens de se usar esta notação: O que tem que ser representado ?
N = (+/-) 1,mmmmmmm x 2yyyyyyyyy
    Sinal   Mantissa  Expoente
 
|----------------------------------------|
|  S | Expoente     |Mantissa            |
|----------------------------------------|
1 bit  7 bits        24 bits
Questões: Exemplo:
Suponha que S=0, positivo, S=1, negativo
Expoente representado em sinal e magnitude
Mantissa em binário
N = (+/-)1,M x 2 E
N=+407,375 = (110010111,011)2=1,M x 2 E= 1,10010111011 x 2 +8
S = 0
E = +8, utilizando-se sinal e magnitude com 7 bits, teremos a
representação: 0001000
M=10010111011 (11 bits) completa para 24 com 0s.
Sinal  Expoente      Mantissa
|-------------------------------------------------------|
|  0 | 0001000      |10010111011000000000000000000000000|
|-------------------------------------------------------|
1 bit  7 bits        24 bits

Dado o número em ponto flutuante, qual o decimal a ele associado ?
Exemplo: 04D00000
N = 1,M x 2E 0000 0100 1101 0000 0000 0000 0000 0000 S=0, E=+4, M=1101 N=+1,1101 x 24=11101=+29,0

Formato IEEE 754 para ponto flutuante

|31|30|29|28|27|26|25|24|23|22|21|....................|0|
|-------------------------------------------------------|
|S |Expoente               | Mantissa                   |
|-------------------------------------------------------|
 1    8                       23
 bit  bits                    bits
N=(-1)Sx(1+M)x2E=(-1)S x (1,M)x2E
Precisão simples: 8 bits para expoente e 23 para mantissa
Precisão dupla: 11 bits para expoente e 52 bits para mantissa

Decisões do IEEE 754