コンピュータ内部では、2進数(2進法)でデータが管理されています。
2進数(2進法)は「0」「1」のみで構成されており、人が考える数字(10進数)もコンピュータ内部では2進数で管理されています。
10進数は数字の先頭に「-」を付けることでマイナスを管理(表して)いますが、2進数先頭1ビットが「1」の場合にマイナスであることを表します。2の補数は2進数の符号を逆転する場合に使用する計算方法です。
2進数には”符号付き”と”符号なし”の2種類があります。符号付きの場合のみ先頭1bitが符号を表しており、符号付きのみ2の補数による符号の逆転が有効となります。
2進数 | 左記2進数を10進数で表した場合 | ||||||||
---|---|---|---|---|---|---|---|---|---|
2進数が符号付きの場合 | 2進数が符号なしの場合 | ||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 2 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 3 | 3 |
~ | ~ | ~ | |||||||
0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 126 | 126 |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 127 | 127 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -128 | 128 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | -127 | 129 |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | -126 | 130 |
~ | ~ | ~ | |||||||
1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | -4 | 252 |
1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | -3 | 253 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | -2 | 254 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | -1 | 255 |
2の補数の計算式は以下の通りとなります。
元の2進数 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 10進数では”126”となる |
---|---|---|---|---|---|---|---|---|---|
各ビットを逆転 |
逆転:「0→1」「1→0」 | ||||||||
1の補数 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | |
最終ビットに1を加算 |
|||||||||
2の補数 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 10進数では”-126”となる |
cman.jp内 関連ページ |
---|
2,8,10,16進数 計算・変換(マイナス、小数点対応) |
2進数と10進数の変換・計算 |
2進数,8進数,16進数とは? |