【にのほすう】
2の補数 とは?
最終更新:
💡 ビット反転に1を足す、負の整数の表し方
固定したビット数で符号付き整数を表す方式。負の数を含む加減算を同じ加算の仕組みで扱いやすくする。ビット反転に1を足すと通常は符号を反転できるが、表現範囲の最小値には正の相手がない。
📌 このページのポイント
0と1だけで、マイナスをどう表すの?
先頭が1なら、いつでも負の数?
2の補数の符号付き整数として読む場合だよ。同じ11111101でも、符号なし整数なら253になる。先頭が0なら正の数かゼロ、1なら負の数と読むんだ。
足し算に使えるのが便利なの?
そうだよ。5の00000101と、−3の11111101を足すと1 00000010になる。下位8ビットの00000010を残せば答えは2。反転と1の加算を組み合わせ、加算の仕組みを減算にも使えるんだ。
8ビットでは何から何まで表せる?
−128から127までだよ。ゼロの表し方は一つで、負の側が一つ多い。たとえば127に1を足した数学上の答え128は、この範囲には収まらないんだ。
反転して1を足せば、どんな数も正負を変えられる?
まとめ:ざっくりこれだけ覚えればOK!
「2の補数」って出てきたら「決まったビット数で、負の整数も足し算に組み込める表し方」と思えばだいたいOK!
📖 おまけ:英語の意味
「Two's Complement」 = 2進数の補数
💬 nビットでは、2のn乗から元の値を引いた結果の下位nビットを使う。元の値と足すと下位nビットがゼロになる関係を利用しているよ。