ホーム コンピュータ 2の補数変換 作成日: 2026年7月20日 21:33 2の補数変換 入力 変換方向10進数 → 2進数ビット幅8ビット10進数の値-422進数の入力11010110 コンピュータ 2の補数変換 符号付き整数を2の補数表現の2進数・16進数に変換、または2進数文字列から符号付き10進数に復元します。8・16・32・64ビット幅に対応。 変換方向 10進数 → 2進数 2進数 → 10進数 入力 入力 ビット幅 8ビット レジスタのビット幅。ビット幅によって2進数の桁数と表現できる符号付き整数の範囲が決まります。Nビットのレジスタは −2^(N−1) 以上 2^(N−1)−1 以下の整数を格納できます。 10進数の値 符号化する符号付き整数を入力します。選択したビット幅 N に対して −2^(N−1) まで負の値を表現できます。 結果 値を入力すると計算結果が表示されます。 表現結果 2の補数(2進数) -42 を 8ビット ビットの2の補数で表した2進数です。4ビットごとに区切って表示します。 16進数 同じビットパターンを16進数で表したものです(先頭に 0x を付与)。16進数の1桁は2進数の4ビットに対応します。 表現可能な範囲 8ビット ビットの2の補数レジスタに格納できる符号付き整数の最小値と最大値です。 共有 レポートを印刷 リセット 埋め込み この計算機を埋め込む プレビュー このコードをページに貼り付けると計算機を表示できます。 コードをコピー この計算を共有 このリンクを開くと、入力した値がそのまま表示されます。 リンクをコピー 共有する XFacebookLINE メール 最終更新: 2026-06-28 2の補数 2の補数(にのほすう)は、デジタルコンピュータが符号付き整数を格納・演算するための標準的な表現方式です。x86、ARM、RISC-V、MIPS といった主要な CPU アーキテクチャはいずれも整数演算に2の補数を採用しています。その理由は、加算回路だけで正負を問わず整数の演算が完結し、ゼロのビットパターンがただ1通りに定まるという簡潔さにあります。 表現の仕組み Nビットの2の補数レジスタは 2N2^N 通りのビットパターンを保持します。そのうち半分が非負の整数(00 から 2N−1−12^{N-1} - 1)、残り半分が負の整数(−2N−1-2^{N-1} から −1-1)に対応します。最上位ビット(左端のビット)が符号ビットとなり、0 なら非負、1 なら負を表します。 非負の整数は通常の符号なし2進数と同一の表現です。たとえば 42 を 8 ビットで表すと次のようになります。 4210=0 0 1 0 1 0 1 02=0x2A42_{10} = 0\!0\!1\!0\;1\!0\!1\!0_2 = \texttt{0x2A} 負の数の求め方 負の整数 −n-n(n>0n > 0)の Nビット2の補数表現は、2N2^N を加えることで求められます。 −n の表現=2N−n(Nビット)\text{$-n$ の表現} = 2^N - n \quad \text{(Nビット)} −42-42 を 8 ビットで表す場合は 28−42=256−42=2142^8 - 42 = 256 - 42 = 214 です。これを2進数で書くと次のようになります。 21410=1101 01102=0xD6\begin{aligned} 214_{10} &= 1101\;0110_2 \\ &= \texttt{0xD6} \end{aligned}21410=110101102=0xD6 もう一つの実用的な手順は、正の値のビットパターンをすべて反転させてから 1 を加える方法です。 4210=0010 1010242_{10} = 0010\;1010_2 全ビット反転:1101 010121101\;0101_2 1 を加算:1101 01102=−42101101\;0110_2 = -42_{10} ✓ どちらの方法も同じ結果になります。 2の補数値の読み取り方 2進数文字列から符号付き10進数に戻すには、符号ビットを確認します。 最上位ビットが 0 の場合は非負。通常の符号なし2進数として読むと 0111 11112=127100111\;1111_2 = 127_{10} です。 最上位ビットが 1 の場合は負。符号なし解釈の値から 2N2^N を引きます。1101 01102=214101101\;0110_2 = 214_{10} なので、214−256=−4210214 - 256 = -42_{10} となります。 表現可能な範囲 符号ビットが非負側の半分を占めるため、Nビットレジスタで表現できる符号付き整数の範囲は下表のとおりです。 ビット幅最小値最大値8ビット−12812716ビット−32,76832,76732ビット−2,147,483,6482,147,483,64764ビット−9,223,372,036,854,775,8089,223,372,036,854,775,807 負の値が正の値より1つ多いのは、ゼロが非負のスロットを1つ占有するためです。2N−12^{N-1} 個の負の値に対して、正の値は 2N−1−12^{N-1} - 1 個にとどまります。 オーバーフロー 演算結果が表現可能な範囲を超えるとオーバーフローが発生し、値が折り返します。8ビットレジスタで 127 に 1 を加算すると 0111 1111+0000 0001=1000 00000111\;1111 + 0000\;0001 = 1000\;0000 となり、これは −128 を表します。CPU はオーバーフロー検出用のフラグを持っており、ソフトウェアはこれを参照して例外処理を行います。ビット操作自体はモジュラー加算(剰余演算)として一貫して行われます。 符号絶対値表現との比較 符号絶対値表現は、1ビットを符号専用に使い、残りの N−1 ビットで絶対値を格納する方式です。この方式には2つの欠点があります。①「正のゼロ」(0000 00000000\;0000)と「負のゼロ」(1000 00001000\;0000)の2通りが生まれ、等値比較に特別な処理が必要になる。②符号の異なる数同士の加算では、どちらの絶対値が大きいかを判断して加減算を使い分ける専用回路が必要になる。2の補数はこれらを解消しており、加算回路1種類で全ケースを処理でき、ゼロの表現は 0000…00000\dots0 の1通りだけです。 よくある質問 (FAQ)符号絶対値表現ではなく2の補数が使われる理由は何ですか?符号絶対値表現は、1ビットを符号専用に使い、残りのビットで絶対値を表します。この方式では「正の0」と「負の0」の2通りのゼロが生まれ、符号の異なる数の加算には専用の減算回路が別途必要になります。 2の補数はこれらの問題を解消します。ゼロのビットパターンがただ1つに定まり、加算回路だけで正負を問わず整数の四則演算が実行できます。この単純さが、現代のあらゆる CPU が整数演算に2の補数を採用している理由です。 8ビット符号付き整数の表現可能な範囲はいくらですか?8ビットの2の補数整数は合計256通りの値を表現でき、その範囲は −128 以上 127 以下です。最小値 −128 はビットパターン 10000000 で表され、最上位の 1 が負の値であることを示します。最大値 127 は 01111111 です。負の値が正の値より1つ多いのは、ゼロが非負の1スロットを占有するためです。 Nビットのレジスタ全般に当てはまる公式は −2^(N−1) 以上 2^(N−1)−1 以下です。16ビットでは −32,768 以上 32,767 以下、32ビットでは −2,147,483,648 以上 2,147,483,647 以下となります。 次のおすすめ IPv4 アドレス表現の変換 ドット付き十進表記の IPv4 アドレスを入力すると、32 ビット整数、16 進数、ドット付き二進数として表示します。パケットキャプチャの読み取り、アクセスリストの作成、アドレスがどう格納されるかの理解に役立ちます。 詳しく解説カラーコードの変換 HEX・RGB・HSLの3形式でカラーコードを相互変換します。いずれかの形式で値を入力すると、他の2形式の値が算出されます。 詳しく解説 200+ ツール · 10 言語対応 · 完全無料 データ・エンコードの他の計算 2の補数変換Base64エンコードのオーバーヘッドCRCチェックサムGit リポジトリのクローンサイズ推定IEEE 754 浮動小数点ビット表現QRコードの収容文字数 +18 more Show less Unixタイムスタンプ変換(エポック ⇄ 日時)UTF-8バイト数計算ツールオーディオファイルサイズ計算カラーコードの変換スループット (bps) 換算データ転送時間の計算テキスト → 2進数 / 16進数 / ASCII 変換ナイキストサンプリングレート計算ツールブルームフィルタ サイズ計算メガピクセル・印刷サイズ計算メモリアドレスビット計算圧縮率の計算画素密度(PPI・DPI)の計算画像ファイルサイズの計算色深度・ビット/ピクセルの計算動画ビットレートとファイルサイズ配信帯域幅の計算浮動小数点精度の計算 コンピュータの他のカテゴリ ネットワーク 1秒あたりパケット数(pps)の計算CIDRとサブネットマスクの変換IPv4 アドレス表現の変換IPv6サブネットの計算IPアドレス範囲の計算IPスーパーネットの計算MTU から MSS の計算TCP スループットの計算サブネットの計算レイテンシバジェットの計算帯域幅遅延積(BDP)の計算セキュリティ・暗号 chmodパーミッションの計算UUID 衝突確率の計算パスワードのエントロピーハッシュ衝突確率の計算アルゴリズム Luhn チェックディジットの計算シャノンエントロピーの計算ハミング距離の計算ビッグO記法の増加率レーベンシュタイン距離の計算信頼性・ストレージ APIレート制限の計算cron式デコーダー・次回実行時刻の計算MTBF・MTTR・稼働率 計算ツールRAID容量の計算クラウドストレージ料金の計算ハミング符号 ECCビット数計算ツール稼働率SLAの計算複合可用性の計算性能・待ち行列 Apdex スコアの計算CPU実行時間 計算ツールIOPS とスループットの変換M/M/1 待ち行列の計算M/M/c 待ち行列計算ツールアーランC 要員数計算アムダールの法則の計算キャッシュヒット率と実効アクセス時間(AMAT)の計算グスタフソンの法則の計算バッテリー駆動時間の計算ツールリトルの法則の計算平均メモリアクセス時間(AMAT)の計算 この計算機は役に立ちましたか? 役に立った 改善が必要 改善が必要 どのような点が改善されると良いですか? フィードバックを送信 Powered by OneCalc ↗
最終更新: 2026-06-28 2の補数 2の補数(にのほすう)は、デジタルコンピュータが符号付き整数を格納・演算するための標準的な表現方式です。x86、ARM、RISC-V、MIPS といった主要な CPU アーキテクチャはいずれも整数演算に2の補数を採用しています。その理由は、加算回路だけで正負を問わず整数の演算が完結し、ゼロのビットパターンがただ1通りに定まるという簡潔さにあります。 表現の仕組み Nビットの2の補数レジスタは 2N2^N 通りのビットパターンを保持します。そのうち半分が非負の整数(00 から 2N−1−12^{N-1} - 1)、残り半分が負の整数(−2N−1-2^{N-1} から −1-1)に対応します。最上位ビット(左端のビット)が符号ビットとなり、0 なら非負、1 なら負を表します。 非負の整数は通常の符号なし2進数と同一の表現です。たとえば 42 を 8 ビットで表すと次のようになります。 4210=0 0 1 0 1 0 1 02=0x2A42_{10} = 0\!0\!1\!0\;1\!0\!1\!0_2 = \texttt{0x2A} 負の数の求め方 負の整数 −n-n(n>0n > 0)の Nビット2の補数表現は、2N2^N を加えることで求められます。 −n の表現=2N−n(Nビット)\text{$-n$ の表現} = 2^N - n \quad \text{(Nビット)} −42-42 を 8 ビットで表す場合は 28−42=256−42=2142^8 - 42 = 256 - 42 = 214 です。これを2進数で書くと次のようになります。 21410=1101 01102=0xD6\begin{aligned} 214_{10} &= 1101\;0110_2 \\ &= \texttt{0xD6} \end{aligned}21410=110101102=0xD6 もう一つの実用的な手順は、正の値のビットパターンをすべて反転させてから 1 を加える方法です。 4210=0010 1010242_{10} = 0010\;1010_2 全ビット反転:1101 010121101\;0101_2 1 を加算:1101 01102=−42101101\;0110_2 = -42_{10} ✓ どちらの方法も同じ結果になります。 2の補数値の読み取り方 2進数文字列から符号付き10進数に戻すには、符号ビットを確認します。 最上位ビットが 0 の場合は非負。通常の符号なし2進数として読むと 0111 11112=127100111\;1111_2 = 127_{10} です。 最上位ビットが 1 の場合は負。符号なし解釈の値から 2N2^N を引きます。1101 01102=214101101\;0110_2 = 214_{10} なので、214−256=−4210214 - 256 = -42_{10} となります。 表現可能な範囲 符号ビットが非負側の半分を占めるため、Nビットレジスタで表現できる符号付き整数の範囲は下表のとおりです。 ビット幅最小値最大値8ビット−12812716ビット−32,76832,76732ビット−2,147,483,6482,147,483,64764ビット−9,223,372,036,854,775,8089,223,372,036,854,775,807 負の値が正の値より1つ多いのは、ゼロが非負のスロットを1つ占有するためです。2N−12^{N-1} 個の負の値に対して、正の値は 2N−1−12^{N-1} - 1 個にとどまります。 オーバーフロー 演算結果が表現可能な範囲を超えるとオーバーフローが発生し、値が折り返します。8ビットレジスタで 127 に 1 を加算すると 0111 1111+0000 0001=1000 00000111\;1111 + 0000\;0001 = 1000\;0000 となり、これは −128 を表します。CPU はオーバーフロー検出用のフラグを持っており、ソフトウェアはこれを参照して例外処理を行います。ビット操作自体はモジュラー加算(剰余演算)として一貫して行われます。 符号絶対値表現との比較 符号絶対値表現は、1ビットを符号専用に使い、残りの N−1 ビットで絶対値を格納する方式です。この方式には2つの欠点があります。①「正のゼロ」(0000 00000000\;0000)と「負のゼロ」(1000 00001000\;0000)の2通りが生まれ、等値比較に特別な処理が必要になる。②符号の異なる数同士の加算では、どちらの絶対値が大きいかを判断して加減算を使い分ける専用回路が必要になる。2の補数はこれらを解消しており、加算回路1種類で全ケースを処理でき、ゼロの表現は 0000…00000\dots0 の1通りだけです。 よくある質問 (FAQ)符号絶対値表現ではなく2の補数が使われる理由は何ですか?符号絶対値表現は、1ビットを符号専用に使い、残りのビットで絶対値を表します。この方式では「正の0」と「負の0」の2通りのゼロが生まれ、符号の異なる数の加算には専用の減算回路が別途必要になります。 2の補数はこれらの問題を解消します。ゼロのビットパターンがただ1つに定まり、加算回路だけで正負を問わず整数の四則演算が実行できます。この単純さが、現代のあらゆる CPU が整数演算に2の補数を採用している理由です。 8ビット符号付き整数の表現可能な範囲はいくらですか?8ビットの2の補数整数は合計256通りの値を表現でき、その範囲は −128 以上 127 以下です。最小値 −128 はビットパターン 10000000 で表され、最上位の 1 が負の値であることを示します。最大値 127 は 01111111 です。負の値が正の値より1つ多いのは、ゼロが非負の1スロットを占有するためです。 Nビットのレジスタ全般に当てはまる公式は −2^(N−1) 以上 2^(N−1)−1 以下です。16ビットでは −32,768 以上 32,767 以下、32ビットでは −2,147,483,648 以上 2,147,483,647 以下となります。