terça-feira, 14 de dezembro de 2010

[Arq e Org] Representação numérica binária


Números com sinal e números sem sinal

Para se representar números inteiros em computadores, é preciso transformá-los em binário, para isto são utilizadas várias técnicas, delas quatro se destacam: Sinal e amplitude/magnitude, complemento de 1, complemento de 2, notação em excesso.

Sinal e amplitude/magnitude

Neste sistema de representação numérica o bit mais representativo (mais a esquerda) representa o sinal. 0 (zero) indica um valor positivo enquanto 1 (um) indica um valor negativo. Os bits restante indicam o módulo do número (valor do número sem sinal). A faixa de representação para n bits é de [-(2n-1-1); 2n-1-1], ou seja, para n=8 a faixa de representação é [-127;127]. Nesse sistema o número 0 (zero) possui duas representações uma negativa e uma positiva.

Complemento de 1

Este sistema de representação numérica é muito parecido com o sinal e amplitude. O bit mais representativo (mais a esquerda) também representa o sinal. 0 (zero) indica um valor positivo enquanto 1 (um) indica um valor negativo. A representação para um número negativo em complemento de 1 pode ser obtida a partir da representação do número positivo correspondente invertendo cada bit da seqüência, ou seja, trocando cada 0's por 1's e cada 1's por 0's. A faixa de representação da representação em complemento de 1 é a mesma de sinal aplitude/magnitude, ou seja, para n bits é de [-(2n-1-1); 2n-1-1]. Assim como a representação de sinal e amplitude/magnitude o número 0 (zero) possui duas representações.

Complemento de 2

Complemento de 2 é o formato mais aceito e utilizado para representação numérica. O bit mais representativo representa o sinal. 0 (zero) indica um valor positivo enquanto 1 (um) indica um valor negativo. Para se obter o valor negativo de um número em complemento de 2 basta inverter todos os bits do mesmo valor em representação positiva e somar 1 ao bit menos significativo (mais a direita) desprezando o último carry, se houver. A faixa de representação para números em complemento de 2 é assimétrica, o número de representações negativas é maior que o número de representações positivas. Para n bits a faixa de representação é de [-(2n-1); 2n-1-1]. Neste tipo de representação o número 0 (zero) possui apenas uma representação que é positiva (00).

Notação em Excesso

Neste sistema de representação o bit mais representativo representa o sinal. 1 (um) indica um valor positivo enquanto 0 (zero) indica um valor negativo. A faixa de representação, assim como em complemento de 2, também é assimétrica e o número 0 (zero) possui apenas uma representação. A faixa de representação nesse sistema é [-(2n-1); 2n-1-1]. Nesse sistema cada número inteiro corresponde ao valor desejado em complemento de 2 acrescido de um excesso de 2n-1, onde n é o número de bits da representação, ou seja, se a representação possuir 4 bits o número 6 seria: 0110 + 1000 = 1110. A vantagem deste sistema consiste em que o maior número sempre será aquele onde todos os bits são iguais a 1 (um) e o menor número será aquele onde todos os bits são iguais a 0 (zero).

Tabela com a comparação entre os sistemas de representação

Binário (4bits)

Sinal e amplitude/ magnitude

Compl. de 1

Compl. De 2

Excesso de 8(n=4)

0000

+0

+0

0

-8(0-8)

0001

1

1

1

-7(1-8)

0010

2

2

2

-6(2-8)

0011

3

3

3

-5(3-8)

0100

4

4

4

-4(4-8)

0101

5

5

5

-3(5-8)

0110

6

6

6

-2(6-8)

0111

7

7

7

-1(7-8)

1000

-0

-7

-8

0(8-8)

1001

-1

-6

-7

1(9-8)

1010

-2

-5

-6

2(10-8)

1011

-3

-4

-5

3(11-8)

1100

-4

-3

-4

4(12-8)

1101

-5

-2

-3

5(13-8)

1110

-6

-2

-2

6(14-8)

1111

-7

-0

-1

7(15-8)



Nenhum comentário:

Postar um comentário