2の補数電卓

これは 2の補数電卓です。符号付き整数をビット列に書くか、hex / 二進を符号付きとして読みます。8 ビットの −1 は 0xFF、−52 は 0xCC。同じバイト 0xFF の符号なしは 255 です。

ビットをクリックして反転します。左端(金の枠)が符号ビットです。

クリックするとコピーします

パディング、反転、+1

2の補数の加減(A と B は符号付き十進)

例 — スウォッチをクリック

同じ 4 ビットを符号なし・符号絶対値・1の補数・2の補数で読む表。行をクリックして読み込みます

Binary 符号なし 符号絶対値 1の補数 Two's
00000000
01015555
01117777
10008−0−7−8
101010−2−5−6
111115−7−0−1

これは 2の補数電卓です

符号付き整数を 2 の補数のビット列に書くか、hex / 二進パターンを符号付きとして読みます。幅は自動、4、8、12、16、32、64 です。8 ビットの −1 は 0xFF、−52 は 0xCC、20 は 0x14。同じビットの符号なし読みは 0xFF = 255 です。HEX、Binary、Decimal は訳しません。これは Hex ビット演算電卓 でも符号なしの Hex 電卓 でもありません。

使い方

  1. Decimal / Hex / Binary とビット幅を選びます。十進は符号付き整数の 2 の補数を書きます。Hex と Binary は幅まで 0 埋めしてから符号付きに読みます。自動は収まる最小幅です。
  2. 格子がパターンです。左端(金の枠)が符号ビットで、クリックして反転できます。カードには hex、符号付き十進、符号なし、1の補数(全ビット反転)、反転+1 の −X が出ます。
  3. 負の十進は 3 手順:絶対値をパディング、反転、+1。8 ビットの −52 は 0011 0100 → 1100 1011 → 1100 1100(0xCC)。正の数は反転しません。
  4. A と B は同じ幅の符号付き十進です。A+B と A−B は 2^N で回り、数学的な和が収まらないとオーバーフローと出ます。例は 8 ビット −1 → 0xFF。ほかに −52、20、0xFF、0x80(−128)、4 ビット 1010(−6)があります。
  5. 4 ビット表は符号なし、符号絶対値、1の補数、2の補数を比べます。行をクリックしてそのパターンを入れます。

注意事項

パターンは TC = (2^N + X) mod 2^N です。8 ビット符号付きは −128…127、4 ビットは −8…7。幅より短い hex/二進は 0 埋めであり、符号拡張ではありません。8 ビットの 0x80 を符号反転しても 0x80 のままです(+128 がありません)。関連:IEEE 754、エンディアン変換。

こんなときに

  • ダンプの符号付きバイト:signed char の 0xFF は −1、unsigned char は 255。
  • 手で反転+1 を確認する。A−B は A に B の 2 の補数を足すこと。

よくある質問

8 ビットの −128 を符号反転できないのはなぜ?

範囲が非対称です。1000 0000 を反転して 1 を足すとまた 1000 0000 です。数学の +128 はこの幅に入りません。

0xFF は −1 ですか 255 ですか?

読み方次第です。このページは 2 の補数の符号付き値と、同じビットの符号なし読みの両方を出します。

ここの 1の補数とは?

今のパターンの全ビットを反転しただけで、+1 しません。負数を 2 の補数にするときは絶対値を反転してから +1 します。