使い方
- 「10進数」「16進数」「8進数」「2進数」のいずれかの欄に値を入力すると、残りの欄が即座に更新されます。
- 負数を扱う場合は「ビット幅」で表示に使う幅(8/16/32/64bit)を選びます。
- 「2進・8進・16進の入力欄の解釈」で、最上位ビットが1の値を負数(2の補数)として読むか、そのまま非負の数値として読むかを切り替えられます。
- 下部の「ビット演算電卓」でAND/OR/XOR/NOT/シフトを計算できます。
仕組み・計算式
2の補数は多くの処理系が採用する負数表現で、Nビット幅において非負整数vのビットパターンは「(2^N + v) mod 2^N」で求められます。本ツールは値をJavaScriptのBigIntとして保持し、64bitを超える整数でも精度を落とさず計算します。BigIntのビット演算子(&, |, ^, ~, <<, >>)はECMAScript仕様で「無限精度の2の補数」として定義されているため、選択したビット幅のマスク(2^N - 1)とAND演算するだけで正しいNビットのビットパターンを直接得られます。算術右シフトはBigIntの>>演算子が符号を保持したまま実装しているため、そのまま利用しています。
現場の落とし穴: 「2の補数として解釈」がONの状態で16進欄に0x80〜0xFF(8bit時)のような値を入れると自動的に負数として解釈されます。unsigned charやネットワークバイト列など符号なし前提のデータを貼り付けると意図せず負の数になるため、その場合は「符号なし」に切り替えてください。また選択したビット幅を超える負数(例: 8bit選択時の-200)は2の補数表示ができないため、符号+絶対値表示にフォールバックします。
よくある質問
Q. マイナスの数を16進・2進・8進の欄に直接入力できますか?
A. できます。先頭に「-」を付けると、2の補数ではなく符号+絶対値としてそのまま負数と解釈されます。2の補数のビットパターンを見たい場合は、符号なしの値(例: FF)を「2の補数として解釈」ONの状態で入力してください。
Q. 64bitを超える値は正しく扱えますか?
A. 扱えます。内部でJavaScriptのBigIntを使うため、任意の桁数の整数を精度を落とさず変換できます。ただしビット幅の選択肢は8/16/32/64bitまでのため、それを超える幅での2の補数表示はできません。
Q. 0x・0b・0oの接頭辞はどの欄に入力しても認識されますか?
A. はい。10進欄でも「0xFF」のように入力すれば16進として自動判定します。接頭辞がある場合は符号なしの数値としてそのまま解釈され、2の補数への変換は行われません。
関連ツール
最終更新・根拠の確認日: 2026-09-10 · カテゴリ: 開発・データ