Arquitetura de Computadores · material complementar
Síntese
Mapa conceitual das principais representações numéricas discutidas no anexo.
As grandezas numéricas representadas nos sistemas computacionais utilizam o sistema binário de numeração.
Os conjuntos dos números discutidos na matemática do "sistema decimal" também merecem um tratamento próprio nos sistemas computacionais.
Nos sistemas computacionais, em certas circunstâncias, é necessário tratar somente o valor absoluto, isto é, sem sinal, do número inteiro.
Designaremos essa representação dos números dos sistemas computacionais como representação em binário puro.
"Em ciência da computação, palavra (em inglês: word) é a unidade natural de informação usada por cada tipo de computador em particular.
É uma sequência de bits de tamanho fixo que é processado em conjunto numa máquina." Wikipédia
Para não haver equívoco, sempre que nos referirmos a uma grandeza numérica tratada pelos sistemas computacionais, definiremos o tamanho da palavra, conforme o sentido descrito acima, da arquitetura.
Seja um número binário negativo com m bits, ele pode ser representado das seguintes notações:
Seja um número de m bits, N = bm-1 ... b1 b0, usando a notação em bit sinal,
| bit sinal | representação em binário puro | Positivo/Negativo |
|---|---|---|
| 0 | bm-2 ... b1 b0 | Positivos |
| 1 | bm-2 ... b1 b0 | Negativos |
O complemento de um número de m dígitos é a diferença entre
o maior número de m dígitos naquela base e o número
considerado.
Por exemplo, na base 10, o complemento de 12 é 87, pois 99 (maior número
com 2 dígitos) menos 12 é igual a 87.
Na base 2, para obter o complemento basta inverter os bits do número binário.
Por exemplo C1(1011) = 1111-1011 = 0100 (inversão dos bits de 1011), onde C1 representa a operação complemento, chamado na base 2 de complemento de 1.
Considerando o que foi tratado acima, seja um número de m bits, N = bm-1 ... b1 b0, usando a notação em complemento de 1,
| bit sinal | representação em binário puro | Positivo/Negativo |
|---|---|---|
| 0 | bm-2 ... b1 b0 | Positivos |
| 1 | Complemento de 1 de bm-2 ... b1 b0 | Negativos |
O complemento 2 de números binários obtém-se pela soma do complemento de 1 com o bit 1.
Ou seja, C2(N) = C1(N) + 1.
Considerando o que foi tratado acima, seja um número de m bits, N = bm-1 ... b1 b0, usando a notação em complemento de 1,
| bit sinal | representação em binário puro | Positivo/Negativo |
|---|---|---|
| 0 | bm-2 ... b1 b0 | Positivos |
| 1 | Complemento de 2 de bm-2 ... b1 b0 | Negativos |
Seja um número de m bits, N = bm-1 ... b1 b0, usando a notação em excesso m-1, a representação binária é a mesma da representação em binário puro deslocada de até a faixa dos negativos em 2m-1.
Cada número em representação de excesso m-1 equivale ao binário puro de m bits decrementado de -2m-1. Por exemplo, em palavras de 4 bits, o excesso é 23=8. A representação de 0d (em decimal) em binário puro é 0000, que corresponde a 0-8=-8 em excesso 8. A representação de 12d em binário puro é 1100, que corresponde a (12-8)=+4 em excesso 8.
A tabela apresenta uma comparação entre representações de inteiros negativos e positivos em um sistema cuja palavra possui 4 bits.
| base 10 | Sinal e magnitude | Complemento de 1 | Complemento de 2 | excesso 8 |
|---|---|---|---|---|
| +7 | 0111 | 0111 | 0111 | 1111 |
| +6 | 0110 | 0110 | 0110 | 1110 |
| +5 | 0101 | 0101 | 0101 | 1101 |
| +4 | 0100 | 0100 | 0100 | 1100 |
| +3 | 0011 | 0011 | 0011 | 1011 |
| +2 | 0010 | 0010 | 0010 | 1010 |
| +1 | 0001 | 0001 | 0001 | 1001 |
| 0 | 0000 | 0000 | 0110 | 1000 |
| 0 | 1000 | 1111 | - | - |
| -1 | 1001 | 1110 | 1111 | 0111 |
| -2 | 1010 | 1101 | 1110 | 0110 |
| -3 | 1011 | 1100 | 1101 | 0101 |
| -4 | 1100 | 1011 | 1100 | 0100 |
| -5 | 1101 | 1010 | 1011 | 0011 |
| -6 | 1110 | 1001 | 1010 | 0010 |
| -7 | 1111 | 1000 | 1001 | 0001 |
| -8 | - | - | 1000 | 0000 |
Os números reais, particularmente os números fracionários, podem ser representados usando-se notação científica, na forma
N = f × 10e
, onde f é a fração ou mantissa e e é o expoente.
Computacionalmente, o equivalemente aos números fracionários representados em notação científica, são os números com representação em ponto flutuante.
Pela representação em ponto flutuante convenciona-se o número de dígitos para representar mantissa e expoente.
Nesse sentido, um sistema com palavras de m bits utiliza, n bits para representar a mantissa (ou fração) e k=m-n bits para representar o expoente.
Tanto mantissa quanto expoente podem utilizar uma das representações de números negativos discutidas anteriormente.
Admitindo que a faixa de representação da notação usada para a mantissa seja -N a +M e para o expoente seja -P a +Q,a faixa de representação dos números de ponto flutuante será
A representação pode ser caracterizada pela faixa de representação (limites da representação numerica) e pela precisão: