整数表現
2の補数表現
現在のコンピュータで、もっとも一般的に使用される整数の表現方法は、2の補数表現である。2の補数表現では、固定長のビット列を使用する。先頭の1ビットは符号ビットとも呼ばれ、値の正負(+と-)を表すのに使用される。符号ビットが0の場合は正の値、1の場合は負の値を表す。
正負を反転させるには、右側から見ていき、最初の1まではそのままで、1より左側のビット列を反転させれば良い。
- 0110 (10進法で6)
- ↓ 右側から3桁目以降を反転
- 1010 (10進法で-6)
すべてのビットパターンを反転させて1を加えても、同様の結果が得られる。
- 0110
- ↓ すべて反転
- 1001
- ↓ 1を加える
- 1010
現在のコンピュータでは、32ビットや64ビットのパターンの2の補数表現が一般的に使用される。一般に、nビットのパターンであれば、(-2n-1)〜(2n-1-1) の範囲の数を表現できる。4ビットであれば、-8〜7である。
エクセス方式
整数表現のもう一つの方法にエクセス方式がある。エクセス方式は、バイアス表現、オフセット・バイナリとも呼ばれる。2の補数と同様に固定長のビット列を使用する。エクセス方式では、使用されるビット列の長さで表現できる最小の値から、2進法で数え上げる順序で書き出される。
下記に示す8ビットのエクセス方式はエクセス127と呼ばれる。これは、2進法で示す値がエクセス記法で示す値より127だけ超過(エクセス)しているためである。従って、127を2進法で表すビットパターンが、エクセス127で0を表す。また、2の補数とは符号ビットが逆になる。
| ビットパターン | エクセス127 | 2進法 |
|---|---|---|
| 00000000 | -127 | 0 |
| 00000001 | -126 | 1 |
| … | … | … |
| 01111110 | -1 | 126 |
| 01111111 | 0 | 127 |
| 10000000 | 1 | 128 |
| … | … | … |
| 11111110 | 127 | 254 |
| 11111111 | 128 | 255 |
エクセス方式は、小数表現のページで示す浮動小数点方式で使用される。