読み方 : にのほすう

2の補数 【two's complement】

概要

2の補数(two's complement)とは、ある自然数を2進数(2進法)で表現した時に、足し合わせるとちょうど桁が一つ増える最小の数のこと。コンピュータにおける負の整数の表現や数値演算などに応用される。

2進数における「基数の補数」と呼ばれる数で、ある数に足し合わせることで桁が一つ増え、最上位桁(値は「1」となる)以外はすべて「0」となるような数を指す。例えば、8桁の2進数「10010110」に対する2の補数は「1101010」であり、両者を足し合わせるとちょうど9桁の「100000000」となる。

これに対し、元の数に足し合わせると桁上りせず最も大きな数(「1111…」とすべての桁が1になる)となる補数は「1の補数」(2進数における減基数の補数)と呼ばれる。コンピュータでは1の補数ビット反転NOT演算)によって求めることができ、これに1を加えると2の補数となる。

なお、2進数に限定せず2の補数という場合は、3進数における減基数の補数を指す場合もある。元の数に足し合わせると桁上りせず「2222…」とすべての桁が2になる数のことである。

(2021.6.21更新)

他の用語辞典による「2の補数」の解説 (外部サイト)

資格試験などの「2の補数」の出題履歴

▼ ITパスポート試験
平24春 問52】 負の整数を2の補数で表現するとき、8桁の2進数で表現できる数値の範囲を10進数で表したものはどれか。

▼ 基本情報技術者試験
令7修1 問1】 負数を2の補数で表すとき,8ビットで表現できる整数の範囲は 10 進数でどれか。
令5修12 問1】 負数を2の補数で表すとき,8ビットで表現できる整数の範囲は10進数でどれか。
令4修6 問3】 2の補数で表された負数 10101110 の絶対値はどれか。
令1修7 問2】 負の整数を表現する代表的な方法として,次の3種類がある。 a 1の補数による表現 b 2の補数による表現 c 絶対値に符号を付けた表現(左端ビットが0の場合は正,1の場合は負)4ビットのパターン 1101 を a~c の方法で表現したものと解釈したとき,値が小さい順になるように三つの方法を並べたものはどれか。
平30春 問1】 ある整数値を,負数を2の補数で表現する2進表記法で表すと最下位2ビットは “11” であった。10進表記法の下で,その整数値を4で割ったときの余りに関する記述として,適切なものはどれか。
平27修12 問3】 負の整数を表現する代表的な方法として,次の3種類がある。 a 1の補数による表現 b 2の補数による表現 c 絶対値に符号を付けた表現(左端ビットが0の場合は正,1の場合は負) 4ビットのパターン 1101 を a~c の方法で表現したものと解釈したとき,値が小さい順になるように三つの方法を並べたものはどれか。
平27修1 問3】 負数を2の補数で表すとき,8ビットで表現できる整数の範囲は 10 進数でどれか。
平24修12 問2】 負数を2の補数で表すとき,8ビットの2進正数nに対し-nを求める式はどれか。ここで,+は加算を表し,OR はビットごとの論理和,XOR はビットごとの排他的論理和を表す。
平24秋 問1】 8ビットの2進数 11010000 を右に2ビット算術シフトしたものを,00010100 から減じた値はどれか。ここで,負の数は2の補数表現によるものとする。
平24修1 問3】 負数を2の補数で表現する固定小数点表示法において,nビットで表現できる整数の範囲はどれか。ここで,小数点の位置は最下位ビットの右とする。
平23修7 問2】 10進数の-20を2の補数表現で8ビットのレジスタに記憶する。これを右に3ビット算術シフトした結果を10進数で表したものはどれか。
平22修12 問2】 2の補数で表された負数 10101110 の絶対値はどれか。