ビット演算計算機

視覚的なバイナリ表示とステップごとの解説でビット演算を実行。

このツールについて

ビット演算計算機は、整数に対するビット演算を視覚的でインタラクティブなインターフェースで実行できる無料のブラウザベースツールです。低レベルのネットワークコード、組み込みシステムのファームウェア、グラフィックスプログラミング、パーミッションフラグなどの作業に、ビット演算の操作を即座に確認・検証できます。

サポートする演算はAND(&)、OR(|)、XOR(^)、NOT(~)、左シフト(<<)、右シフト(>>)、符号なし右シフト(>>>)です。各演算の結果は10進数、16進数、8進数、2進数の4つの一般的な数値形式で表示され、必要な表現をすぐにコピーできます。

視覚的な32ビットグリッドは各ビットを0と1で色分け表示します。個別のビットをクリックして切り替えることで、手動計算なしに特定のビットマスク値を簡単に構築できます。ステップごとの解説セクションでは、演算がビットごとにどのように動作するかを正確に表示し、複雑なビット演算式のデバッグに非常に役立ちます。

異なるデータサイズに対応するため、8ビット、16ビット、32ビット幅を切り替えられます。ツールは値を選択した幅に自動的にマスクし、符号付きと符号なしの表現を正しく処理します。専用のビットマスク操作セクションでは、ビットセット、ビットクリア、ビットトグル、ビットチェック機能をワンクリックで提供します。

すべての処理はブラウザ内で完全に行われます。データがデバイスから送信されることはなく、サーバーリクエスト、ログ記録、サードパーティの追跡はありません。数値基数の変換が必要な場合は数値基数変換ツールをお試しください。生のHexデータの操作にはHexエディタをご利用ください。

使い方

  1. Input Aフィールドに数値を入力します。10進数、16進数(0xプレフィックス)、2進数(0bプレフィックス)を自動検出します。
  2. 上部のボタンでビット幅(8ビット、16ビット、32ビット)を選択します。
  3. 演算セレクターからビット演算(AND, OR, XOR, NOT, <<, >>, >>>)を選択します。
  4. 二項演算ではInput Bに2つ目の数値を入力します。NOTの場合はInput Aのみ使用されます。
  5. 結果をすべての形式(10進数、16進数、8進数、2進数)と下のビットグリッドで確認します。
  6. ビットグリッドの各ビットをクリックしてトグルし、結果の変化を確認します。
  7. 一般的なビットマスク操作セクションで特定のビット位置のセット、クリア、トグル、チェックを素早く実行します。
  8. Ctrl+Shift+Cで10進数の結果をクリップボードにコピーします。

人気のビット演算の例

すべてのビット演算の例を見る -->

よくある質問

データは安全ですか?

はい。すべてのビット演算はJavaScriptを使用してブラウザ内で完全に実行されます。データはサーバーに一切送信されません。プライバシーの心配なく、どのような値にも安全に使用できます。

どの数値形式を入力できますか?

10進数(例:42)、0xプレフィックス付きの16進数(例:0x2A)、0bプレフィックス付きの2進数(例:0b101010)で数値を入力できます。ツールは形式を自動検出し、検出された形式をバッジで表示します。

>>と>>>の違いは何ですか?

>>演算子(算術右シフト)は符号ビットを保持するため、負の数はシフト後も負のままです。>>>演算子(符号なし右シフト)は最上位ビットをゼロで埋めるため、常に非負の結果を生成します。この違いは符号付き整数で重要です。

ビット幅の設定は計算にどう影響しますか?

ビット幅(8、16、32)は計算に使用するビット数を決定します。値は選択した幅に合わせてマスクされます。例えば、8ビットモードでは下位8ビットのみ保持されるため256は0になります。これは固定幅レジスタでの整数の動作をシミュレートします。

ビット演算の一般的な用途は何ですか?

ビット演算はパーミッションフラグ(Unixファイルパーミッション)、ネットワークサブネットマスキング、組み込みシステムのレジスタ操作、グラフィックスのカラーチャネル抽出、暗号アルゴリズム、データ圧縮、パフォーマンス最適化された演算(シフトによる2の累乗の乗除算)に使用されます。

クリックで個別のビットを切り替えられますか?

はい。Input AまたはInput Bのビットグリッドの任意のビットをクリックすると、0と1の間で反転します。入力値とすべての結果は自動的に更新されます。これは特定のビットマスク値の構築に便利です。

ビットマスク操作はどのように動作しますか?

ビットセットはvalue | (1 << pos)で特定のビットを1に設定します。ビットクリアはvalue & ~(1 << pos)でビットを0に設定します。ビットトグルはvalue ^ (1 << pos)でビットを反転します。ビットチェックは(value & (1 << pos)) !== 0でビットが設定されているかテストします。

関連ツール