ビット演算計算ツール

二つの値を入力して演算を選ぶと、結果が10進、16進、2進で表示され、各段階のビットも分かります。選んだ幅によって存在するビットが決まるので、NOTやシフトは、コンピュータが出すのと同じ結果になります。

無料 ブラウザで動作 2026年11月10日火曜日確認済み

演算する数で、「数の表記」で選んだ進数で入力します。負の10進数は2の補数として扱われます。

AND、OR、XOR、NAND、NORでだけ使われます。

数の表記

結果

16進 — 0xの接頭辞を付けた結果です。
10進(符号なし) —
10進(2の補数) — 同じビットを符号付きの数として読んだ値です。
2進 —
確認 — 各値が幅に収まるかを示します。
ビットごと

このツールはブラウザ内で動作します。入力した内容が当社に送信されることはありません。

使い方

  1. 第1の値(A)に1つめの値を、その演算で使う場合は第2の値(B)に2つめの値を入力します。
  2. 数の表記で値を入力した進数を選び、演算を選びます。
  3. シフトか回転の場合はシフトまたは回転の量を設定します。結果が持つべきビット幅を選びます。
  4. 16進、10進(符号なし)、2進の結果と、その下のビットごとの表を読みます。

論理演算

0xCA AND 0x0F = 11001010 AND 00001111 = 00001010 = 0x0A
  • ANDは、両方のビットが1の位置だけ1になります。一部のビットを残し、ほかを0にするために使います。
  • ORは、どちらかのビットが1の位置で1になります。ビットを立てるために使います。
  • XORは、ちょうど一方のビットだけが1の位置で1になります。同じXORを2回かけると、元の値に戻ります。
  • NANDとNORは、ANDとORの結果をさらに反転したものです。NOTは、幅の中のすべてのビットを反転します。

シフトと回転

左シフトは、すべてのビットを1つ上の位置に動かし、下の位置を0で埋めます。上から出たビットは失われます。論理右シフトは、すべてのビットを1つ下に動かし、上の位置を0で埋めます。算術右シフトは、上の位置を符号ビットの複製で埋めるので、負の値は負のままです。回転は、一方の端から出たビットを、もう一方の端に戻します。

0xCA shifted left by 1 = 10010100 (0x94); logical right = 01100101 (0x65); arithmetic right = 11100101 (0xE5); rotate left = 10010101 (0x95)

幅が重要であること

8ビットでは0のNOTは0xFF、16ビットでは0xFFFF、32ビットでは0xFFFFFFFFになります。結果は、幅と同じ数のビットをもつためです。幅より多くのビットが必要な値は、全部は保存されません。このツールは下位のビットを使い、確認の行を赤で示します。

このツールが扱わないこと

  • 言語による違い。JavaScriptのビット演算子は、被演算子を32ビット整数に変換するため、64ビットの結果を示せません。このツールは、選んだ幅のビットを示し、64ビットの値を正確に扱うためにBigIntを使います。
  • 構造体の中のビットフィールド、バイト順、ファイル形式:それらについては、16進ビューアを参照してください。

計算例:8ビットでの0xCA AND 0x0F

第1の値にCA、第2の値に0Fを入力し、数の表記を16進に、ビット幅を8ビットにします。結果は00001010で、16進では0x0A、10進では10です。両方の値で同じ位置にあるビットだけが残ります。その数は2つで、どちらも0Fが残す下位4ビットにあります。

結果 値
16進 0x0A
2進 0b0000 1010
10進(符号なし) 10

よくある質問

論理右シフトと算術右シフトの違いは何ですか?

どちらもビットを1つ下に動かします。論理シフトは上の位置を0で埋めるので、値を符号なしとして扱います。算術シフトは符号ビットを複製するので、負の値は負のままです。0xCAは−54で、1ビット右にシフトすると−27(0xE5)になります。

NOTの結果が幅によって違うのはなぜですか?

NOTは、幅がもつすべてのビットを反転します。0は8ビットでは00000000なので、NOTは11111111(0xFF)になります。32ビットでは0が32ビットをもつので、NOTは0xFFFFFFFFになります。同じ数でも、幅によってビットの数が異なります。

回転はシフトにないどんな働きをしますか?

シフトは一方の端から出たビットを失います。回転はそれらをもう一方の端に戻すので、ビットは失われません。幅と同じ量だけ回転すると、元の値に戻ります。

幅に収まらない値に警告が出るのはなぜですか?

幅より多くのビットが必要な値は、全部は保存できません。ツールは下位のビットを使うので、8ビットでは300が44になり、確認の行で何が起きたかを示します。そのため、結果を入力した値として受け取らないでください。

2進数の数字をスペースで区切って入力できますか?

はい。スペースとアンダースコアは無視されるので、1100 1010と11001010は同じ値です。16進数には0xの接頭辞、2進数には0bの接頭辞を付けてもかまいません。

出典

数値と文章の最終確認日:2026年11月10日火曜日。

当サイトの運営に必要なCookieを使用します。お客様の同意があれば、Googleは広告用Cookieを使い、パーソナライズ広告を表示します。拒否された場合も広告は表示されますが、パーソナライズはされません。