二進数計算機
二進数の算術演算とビット演算を行い、正確な二進数・十進数の結果を表示します。
二進数の演算
演算を選び、二つの符号なし二進整数を入力してください。
二進数計算機について
二進数計算機は、デジタルコンピューターが使う二を基数とする位取り記数法の数を扱います。十進数の十種類の数字とは異なり、二進数はゼロと一だけを使用します。各桁は二の累乗を表し、右端のビットから一、二、四、八、十六と続きます。例えば1010は八と二の和で、十進数の十です。このツールは入力と主な結果を二進数で表示し、確認用に十進数の値も示します。
算術演算は、一般的な規則を二進数に適用します。加算では各桁が二に達すると繰り上がり、減算では上位桁から二の累乗を借ります。乗算では各ビットを掛けた結果がゼロまたは元の被乗数となるため、桁をずらした部分積を作ります。整数除算では、桁をずらした除数との比較と減算を繰り返して商と余りを求めます。符号なし整数演算を行い、固定のマシンワード長に制限せず、完全な結果を表示します。
ビット演算は対応する桁を論理値として扱います。ANDは両方のビットが一のときだけ一を返します。ORはいずれか、または両方が一なら一を返します。XORはビットが異なる場合に一を返します。入力の長さが異なる場合、短い方の上位側をゼロで埋めたものとして扱います。これらはマスク、権限、グラフィックス、ネットワークプロトコル、組み込みシステム、暗号技術、詰めて格納したデータの効率的な操作に欠かせません。
関連する結果を比較しやすいよう、算術演算とビット演算は同じ入力を共有します。1010と0011の場合、加算は1101、ANDは0010(不要な先頭のゼロは省略)、ORは1011、XORは1001です。乗算は11110です。1010を11で整数除算すると、商11、余り1となり、十進数の十を三で割る計算に相当します。
この計算機の減算では、一つ目の数が二つ目以上である必要があります。これは符号付き表現を暗黙に仮定しないためです。負の二進数には通常、二の補数などの固定幅の規約を用います。同じビット列でも幅によって意味する値が変わる場合があります。また、除数はゼロ以外でなければなりません。余りは常に非負で、除数より小さくなります。
任意長整数を正確に処理するため、大きな入力でも浮動小数点の丸めを回避できます。ただし、極端に長い文字列はブラウザーでの操作に適さない場合があります。先頭のゼロは受け付け、数値には影響しません。二進小数点には対応していません。実際のハードウェアをモデル化する際は、別途ワード幅を定め、オーバーフローや切り捨てを考慮してください。プロセッサーは固定数の下位ビットだけを保持することが多いためです。
二進数演算の例
算術演算とビット演算の例です。
| 演算 | 二進数の結果 | 十進数での確認 |
|---|---|---|
| 1010 + 11 | 1101 | 10 + 3 = 13. |
| 101 × 11 | 1111 | 5 × 3 = 15. |
| 1100 AND 1010 | 1000 | 両方で一になっているのは、重みが八のビットだけです。 |
| 1100 XOR 1010 | 110 | 異なるビットが一となり、十進数で6になります。 |
二進数計算機の使い方
- 演算ボタンから算術演算またはビット演算を選びます。
- ゼロと一だけで一つ目の二進整数を入力します。
- 二つ目の二進整数を入力します。除算では除数をゼロ以外にしてください。
- 「計算」を選び、二進数、十進数の結果と、除算の場合は余りを確認します。
二進数計算機のよくある質問
算術演算とビット演算はどう違いますか?
算術演算は入力全体を整数として扱い、数値の規則を適用します。ビット演算は桁をそろえた個々のビットをブール論理で比較します。
長さの異なる入力はどうそろえますか?
最下位ビットを基準に右揃えにします。ビット演算では不足する上位桁をゼロとして扱います。
減算で負の結果に対応していないのはなぜですか?
負のビット列には符号付き表現とワード幅の指定が必要です。結果を非負に限定することで、解釈の曖昧さを防ぎます。
除算の余りとは何ですか?
被除数は、除数と商の積に余りを加えた値です。余りは常にゼロでない除数より小さくなります。
二進小数は使えますか?
この計算機は符号なし整数のみ対応しています。二進小数には小数点位置の管理と別の変換規則が必要です。