負の整数の表現

2進表記で負の数を表すのは、十進表記に合わせれば当然マイナスの符号を付けるだけ。

-1,  -11,  -1010

コンピュータ内部ではこの方法は使いません。

何通りかのやり方がありますが、整数の計算をする時には、ここで説明する「2の補数」をとるのが便利です。

コンピュータ内部での負数の表現

コンピュータ内部で整数を何ビットで計算するかは目的により様々ですが、普通32ビットを使い、必要があれば64ビットあるいは128ビットで扱うこともあります。

ここでは簡単のために4ビットで計算するコンピュータを考えます。

内部表現 符号なし整数 符号つき整数
(2の補数)
0 0 0 0 r0 r0
+1 -1 clear

4ビットを素直に2進数と解釈するのが、「符号なし整数」です。0 から 15 まで表現できます。

15は 1111(2)で、さらに加えると 10000(2)になるはずですが、4ビットに入りきらないので 0 になってしまいます。

2の補数を使う符号つき整数

負の数を表現するために素直に2進数と解釈しないものを「符号つき整数」といいます。

内部表現が 0000 になっているところから -1 すると 1111 になります。

これを -1 と解釈し最上位ビット(一番左の桁)が 1 の時は負の数とするやりかたをを2の補数表現といいます。

このやり方では 4ビットで -8 から 7 まで表現できます。

内部表現-符号なし整数-符号つき整数の対応表

負の数を表現する分、正の数の範囲が狭くなる。

コンピュータの
内部表現
符号なし整数
(普通の2進数)
符号つき整数
(2の補数)
011177
011066
010155
010044
001133
001022
000111
000000
111115-1
111014-2
110113-3
110012-4
101111-5
101010-6
10019-7
10008-8

8ビットの計算

4ビットなら、1111 が -1 ですが、

8ビットなら、11111111 が -1 になります。

内部表現 符号なし整数 符号つき整数
(2の補数)
0 0 0 0 0 0 0 0 0 0
+1 -1 clear
聖愛中学高等学校
http://www.seiai.ed.jp/
Jun. 2011