「2の補数」の版間の差分
削除された内容 追加された内容
編集の要約なし |
後半をどうしたものか |
||
1行目:
'''2の補数'''(にのほすう)は、
頭の部分の1個以上の0を含む(正規化されていない)ある桁数の二進法で表現された数があるとき、その最上位ビット(MSB)よりひとつ上のビットが1で、残りが全て0であるような値(8ビットの整数であれば、100000000<sub>(二進)</sub> = 256)から、元の数を引いた数が'''2の補数'''である。MSBの重みが1であるような固定小数点表現の場合は特に「2」の補数となる。
== 例 ==
-36([[
二進法8ビットで、36は 00100100 である。
100000000
-) 00100100
-------------
11011100
したがって、'''2の補数'''
元の数(00100100)と求められた(11011100)の2つの数を足し合わせると、すべての桁
=== 別の求め方 ===
「1の補数に1を加える」という方法もある。算術的に考えると、(たとえばこの例の場合)「256-36」という計算を「(255-36)+1」に分解している。
まず
00100100の各ビットを反転させる(1の補数を求める)と、
11011011
次に1を加えると、
11011011
31 ⟶ 32行目:
得られた値は、上記の値と同じことが分かる。
== 1の補
二進法における、減基数すなわち2<sup>n</sup>-1による補数を'''1の補数'''と言う。1の補数は、全ての桁が1である値から、元の値を引けば求まるが、各ビットの1を0に、0を1に、と反転させても求められる。
00100100(元の数)
11011011(1の補数)
|