数値・ビット演算・単位

ビット演算電卓フラグの位置まで確認

語長と進数を指定し、入力のビットを切り替えて結果を確かめます。

ビット演算電卓

入力

最下位はビット0です。チェックすると入力値を直接変更します。

結果

十進数の結果
8
符号なし十進数
8
符号付き十進数
8
二進数
00001000
十六進数
0x08
八進数
0o10
70
60
50
40
31
20
10
00

立っているビット位置(1個): 3

入力はこのブラウザー内で処理され、サーバーには送信されません。

オプション

各入力は整数1つ、256文字まで。0b/0o/0xは進数と一致させ、小数や区切りは使わないでください。

符号付き設定では負数を使え、最上位を符号として読みます。算術右シフトはその符号を広げます。

計算できました。

ビット演算電卓は、複数のフラグを一つの数値にまとめた設定を読み解くときに役立ちます。Aに設定値、Bにビットマスクを入れて論理積を取れば、対象の位置だけを取り出せます。

見た目が同じ十六進数でも、語長と符号の扱いで十進数の意味は変わります。計算結果だけでなく、最上位ビットと立っている位置も一緒に確認してください。

ビット演算電卓で確かめられること

共通のビットを追う

ビット演算電卓の初期例は12 AND 10です。共通して立っているのはビット3だけなので、答えは8になります。チェックを一つ外すと、結果のどの位置が変わるかも確認できます。

8個のセルからなる2行の入力が、共通の点灯位置だけを残す結果の行につながる図。

ゼロ埋めと符号拡張を比較

8ビットの符号付き入力240を2ビット右へ動かすと、論理右シフトは60、算術右シフトは−4です。入口を分けているため、空いた上位に何が入るかを明示的に選べます。

最上位が点灯した同じ8セルの列を右にずらし、上位を空欄で埋める場合と点灯で埋める場合を比較する図。

進数と語長を先にそろえる

01

進数を変えると読み方が変わる

初期値は十進数、8ビット、符号なし、A=12、B=10、ANDです。進数の変更は入力文字列を変換せず、読み直します。0xFFを入力する前に十六進数を選んでください。

02

位の番号で操作する

最下位がビット0です。表示は大きい番号から小さい番号へ並び、狭い画面では折り返します。NOTとシフトはAだけを使い、Bは表示も検証もしません。シフト数は十進数で指定します。

03

更新と置換を区別する

自動計算は編集から350ミリ秒後に実行します。オフにすると計算ボタンとCtrl/Cmd + Enterが使えます。サンプル・クリア・入れ替えはプレビュー後に適用し、直前の入力と結果を復元できます。

フラグを取り出す・立てる・反転する

論理和と排他的論理和

ORは指定した位置を立て、XORはその位置を切り替えます。5と3ならORは7、排他的論理和は6、ANDは1です。NOTは現在の語長内だけを反転し、隠れたBの値には依存しません。

64ビットの末尾を保つ

符号なし64ビットの最大値18446744073709551615も整数として正確に処理します。二進数は語長まで、十六進数は対応する桁数までゼロを補い、符号付き・符号なし両方の十進数を表示します。

ビットシフトを位置で検証

左シフト、論理右シフト、算術右シフトを選べます。結果には立っているビット番号と個数が付きます。シフト数を32で割った余りに置き換えることはなく、指定した幅の中で結果を確定します。

整数とシフトの扱い

入力の範囲は厳密に検査
非負の生のビット列は0から2^w−1まで受け付けます。負数は符号付き設定が必要で、下限は−2^(w−1)です。範囲外の入力を自動で切り詰めず、語長を増やすか数値を直すよう通知します。
移動で外に出た位は捨てる
シフト数は0から語長までの十進整数です。語長と同じ数だけ左または論理右へずらすと0になります。算術右シフトでは元の符号により全0か全1になります。循環して戻ることはありません。
入力は1行の整数のみ
各入力は256文字まで。ASCII数字、任意の符号、進数に一致する0b・0o・0xが使えます。前後の空白とタブだけを取り除き、内部の区切り、改行、小数、十進数の指数表記は受け付けません。
符号設定と元の文字列
符号付き設定は十進数の解釈を変えます。算術右シフトはこの設定でのみ選べ、オフにすると論理右シフトへ戻ります。文字列−1を広げると−1のままですが、255を16ビットに広げると正の255です。
電卓に含めない処理
対応幅は8・16・32・64ビットです。回転、NAND/NOR/XNOR、数式、浮動小数点、無制限の幅は扱いません。名前付きフラグ定義、ファイル、URLの読み込みや履歴の永続保存もありません。

ビット演算電卓のよくある質問

NOT演算は何をしますか?

Aの各ビットを、選んだ語長の範囲で反転します。8ビットの0は11111111となり、符号なしでは255、符号付きでは−1です。Bは使いません。

ビット長はなぜ重要ですか?

最上位の符号ビット、反転する範囲、シフトで残る位が決まるためです。ビット演算電卓は8・16・32・64ビットから選べます。入力が収まらないときは自動選択せずエラーにします。

異なる形式で結果を表示できますか?

はい。二進数、八進数、十進数、十六進数を同時に表示します。十進数には符号付きと符号なしの読み方があり、ほかの形式は同じビット列を表します。保存するレポートにも計算条件が含まれます。

ビット単位ORは足し算と同じですか?

同じではありません。ORには桁上がりがなく、どちらかが1ならその位を1にします。1 OR 1は1ですが、1+1は2です。共通の立っている位がない場合に限り、結果が足し算と一致します。

負の数も入力できますか?

符号付き設定をオンにすれば、−2^(w−1)以上の負数を入力できます。内部では選択幅の2の補数になります。8ビットの0xFFのような非負の生の位列も入力でき、符号付き十進数では−1と表示されます。

想定と違う結果ですか?

ビット演算電卓を使う

ビット演算電卓でまず一つのマスクを確認し、ビットを一つ変えて結果を比べてください。語長と符号の条件を確認してからレポートを保存できます。