[Em desenvolvimento] Apêndice B: Números Sinalizados

Números binários sinalizados

Qualquer número pode ser representado no sistema binário. Para os casos em que é necessário representar números inteiros sinalizados, o bit mais significativo do número binário é utilizado para indicar se o número é positivo ou negativo. As formas mais comuns de representação são: sinal-magnitude e complemento a dois.

Representação em sinal-magnitude

A forma mais simples de representar números binários sinalizados é utilizando o sinal-magnitude. Este tipo de representação utiliza o bit mais significativo para determinar o sinal, se o bit tem valor 1 então o número é negativo, caso contrário, positivo. Por exemplo, considere o valor 2 representado com 5 bits (4 bits para representar o valor e 1 bit para o sinal).

Embora simples, a representação sinal-magnitude traz uma série de desvantagens. Uma é que existem duas representações para o valor zero, isto é, um zero positivo e outro negativo.

Outra desvantagem é que operações aritméticas realizadas em hardware exigem um esforço a mais para determinar os sinais dos números.

Devido a essas desvantagens hoje em dia essa representação não é mais utilizada, em vez disso, todos os computadores atuais utilizam a representação de complemento a dois.

Representação em complemento a 2

Na representação em complemento a 2 os problemas relacionados a representação do valor zero e a de determinação dos sinais dos números são eliminadas. Para saber se um número é negativo ou positivo basta testar o bit mais significativo, se o valor é 1 então o número é negativo, caso contrário, positivo. A forma como os bits são interpretados nessa representação difere do sinal-magnitude. Assim, o bit mais significativo representa o valor . Retomando o exemplo do número zero, tem-se que:

Por exemplo, considere o valor 2 representado com 5 bits (4 bits para representar o valor e 1 bit para o sinal).

A partir do diagrama[1] mostrado abaixo é possível verificar que a representação por complemento a dois possui um número negativo () que não possui um número positivo correspondente, contudo essa característica não é inconveniente quando comparada as desvantagens da representação por sinal-magnitude.

1000 0001001000110100010101100111+0-81111-4+4-1-2-31110-5-6-7+1+2+3+51101+6+711000000101110101001

Portanto, a faixa de valores que um número sinalizado pode apresentar é de até .