ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
2進数における負の数の表わし方の一つで、すべてのビットを反転させたもの(1の補数)に1を加えたもののこと。この際、桁あふれは無視する。
1の補数と比較すると、より計算機の仕様や都合に近い値である。
例えば−1を例にする。16進数4桁で正の1は0x0001なので、これを否定した後に1を足すと0xFFFFとなる。
つまり2の補数の世界では0xFFFFが−1を意味することになる。
2の補数は、符号を気にせず単純に加算するだけで加減算を行なえるという便利な特徴がある。
一例として5−6の計算を行なう。これは、5+(−6)とも表現でき、5と−6はそれぞれ0x0005と0xFFFAになる。これを単純に加算すると0xFFFFとなるが、これは前述の通り、−1の2の補数に相違ない。
もし加算の際に桁上がりが生じた場合、その桁は捨てる。例えば10−5を考えると、それぞれ0x000Aと0xFFFBなので、0x000A+0xFFFB→0x10005となる。16ビットを超えた部分を切り捨てると0x0005となり、結果として5を得ることができるわけである。
このようにして、2の補数は引き算を足し算に変換できるという性質があり、また分かりやすいこともあって頻用されている。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます