二進小数変換

二進小数を十進数へ、十進小数を二進数へ変換し、手順付きで解説します。

変換方向を選び、値を入力すると、結果とアルゴリズムの説明がすぐに表示されます。

二進小数変換
二進小数を十進数へ、十進小数を二進数へ変換し、手順付きで解説します。

二進小数(0 と 1 の数字を小数点で区切った値)を入力し、正確な十進数の等価値を取得します。

二進小数変換について

二進小数は、2 の負の累乗を位取りとして使うことで、二進整数を非整数の量へ拡張します。十進法で小数点の右側を 10 分の 1 (10⁻¹)、100 分の 1 (10⁻²)、1000 分の 1 (10⁻³) のように扱うのと同様に、二進法では同じ位置を 2 分の 1 (2⁻¹ = 0.5)、4 分の 1 (2⁻² = 0.25)、8 分の 1 (2⁻³ = 0.125)、16 分の 1 (2⁻⁴ = 0.0625) というように扱います。二進小数点の右側にある各ビットは、これらの小さくなっていく 2 の累乗のいずれかを表します。 二進小数を十進数へ変換する手順は単純です。まず数を二進小数点で分けます。整数部は標準的な方法で変換します。最右ビットが 2⁰、その次が 2¹ で、左へ進むほど指数が増えます。小数部では、二進小数点直後の左端ビットに 2⁻¹ を掛け、次に 2⁻² を掛け、以降のビットにも順に負の累乗を掛けます。すべての寄与を合計すると、正確な十進値が得られます。たとえば、二進数 101.101 は (1×4) + (0×2) + (1×1) + (1×0.5) + (0×0.25) + (1×0.125) = 5 + 0.5 + 0.125 = 5.625 です。 十進小数を二進数へ変換するには、2 つの手順が必要です。整数部は 2 で繰り返し割り、余りを記録して変換します。小数部は 2 を繰り返し掛けて変換します。小数部に 2 を掛け、結果の整数部(0 または 1)を次の二進桁として記録し、残った小数部で続けます。小数部が 0 になるか、目的の精度に達するまで繰り返します。5.625 の場合、整数 5 = 101₂、小数 0.625 × 2 = 1.25 → ビット 1、0.25 × 2 = 0.5 → ビット 0、0.5 × 2 = 1.0 → ビット 1 となり、小数部が 0 になるため結果は 101.101₂ です。 重要なのは、すべての十進小数が有限の二進表現を持つわけではないという点です。1/3 が有限小数として書けないのと同じように、0.1、0.2、0.3 などの単純な十進小数の多くは、正確に表すために無限個の二進ビットを必要とします。これがコンピューターにおける浮動小数点の丸め誤差の根本原因です。この変換器の精度設定は、計算する小数ビット数を制御します。精度を上げるほど近い近似値になりますが、循環し続ける小数では正確な結果が得られない場合があります。 二進小数はコンピューティング全般で広く使われています。IEEE 754 浮動小数点演算標準では、単精度および倍精度の数値を、暗黙の先頭 1 ビットとバイアス付き指数を持つ二進小数として符号化します。デジタル信号処理では、音声や画像データを Q フォーマット数と呼ばれる固定小数点二進小数として表します。十進値が二進小数にどのように対応するかを理解することは、低レベルコードを書く人、組み込みシステムを扱う人、ソフトウェアの数値精度問題をデバッグする人にとって不可欠です。

二進小数の変換例

二進数から十進数、十進数から二進数への両方の手順を示す一般的な変換例です。

入力結果メモ
101.101(二進数)5.625(十進数)1×4 + 0×2 + 1×1 + 1×0.5 + 0×0.25 + 1×0.125 = 5.625。近似を必要としない明快な変換です。
1010.1101(二進数)10.8125(十進数)1×8 + 0×4 + 1×2 + 0×1 + 1×0.5 + 1×0.25 + 0×0.125 + 1×0.0625 = 10.8125。
5.625(十進数)101.101(二進数)整数 5 = 101₂。小数部:0.625×2=1.25→1、0.25×2=0.5→0、0.5×2=1.0→1。結果 101.101₂ は正確です。
3.375(十進数)11.011(二進数)整数 3 = 11₂。小数部:0.375×2=0.75→0、0.75×2=1.5→1、0.5×2=1.0→1。小数 3 ビットで正確に表せます。

二進小数変換の使い方

  1. 変換方向を選びます。「二進数 → 十進数」を選ぶと二進小数を十進数へ変換し、「十進数 → 二進数」を選ぶと逆方向に変換します。
  2. 入力欄に値を入力します。二進数入力では、0 と 1 と 1 つの小数点だけを使います(例 101.101)。十進数入力では任意の正の数を入力できます(例 5.625)。
  3. 十進数から二進数へ変換する場合は、小数精度を設定して、二進小数点の後に計算するビット数を指定します(既定値は 8)。
  4. 「変換」をクリックします。対応する十進値または二進値がすぐに明確に表示されます。
  5. 「リセット」をクリックすると、すべての欄を消去して新しい変換を開始できます。

二進小数変換 FAQ

なぜ 0.1 は二進数で正確に表せないのですか?
十進数の 0.1 は 1/10 であり、10 = 2 × 5 だからです。5 は 2 の累乗ではないため、分数 1/10 を表すには無限個の二進桁が必要になります。これは 1/3 が有限小数として書けないのと似ています。コンピューターは有限幅の浮動小数点レジスターに近似値を保存するため、多くのプログラミング言語で 0.1 を 3 回足しても正確に 0.3 にはなりません。
十進数の小数部を二進数へ変換するには?
繰り返し 2 倍する方法を使います。小数部に 2 を掛け、整数部分(0 または 1)を次の二進ビットとして記録し、残りの小数部で続けます。小数部が 0 になるか十分なビット数が得られるまで繰り返します。0.625 の場合:0.625×2=1.25 → ビット 1、0.25×2=0.5 → ビット 0、0.5×2=1.0 → ビット 1 で完了。結果は .101₂ です。
固定小数点と浮動小数点の二進小数の違いは何ですか?
固定小数点表現では、二進小数点があらかじめ決められた位置にあるため、整数ビット数と小数ビット数が固定されます。浮動小数点(IEEE 754 など)では二進小数点が移動します。別の指数フィールドが仮数を左右にずらすことで、精度が均一でない代わりに非常に広いダイナミックレンジを扱えます。固定小数点はより単純で高速、浮動小数点は科学計算でより柔軟です。
指定した十進精度に合わせるには何ビット必要ですか?
二進ビットを 1 つ増やすごとに、およそ log₁₀(2) ≈ 0.301 桁の十進精度が増えます。d 桁の十進精度に合わせるには、およそ d / 0.301 ≈ 3.32 × d ビットが必要です。たとえば単精度 IEEE 754 は 23 個の小数ビットを使い、約 7 桁の十進有効数字を提供します。
小数点のない整数だけでも変換できますか?
はい。1011(二進数)や 11(十進数)のような整数を入力すると、変換器は小数部が 0 の数として扱い、通常どおり変換します。結果にも小数部は付きません。
十進数から二進数へ変換するとき、精度設定は何をしますか?
精度は、二進小数点の後に計算する最大ビット数を設定します。精度を高くすると、有限で終わらない二進小数に対してより近い近似値が得られます。精度上限に達する前に小数部が終わる場合、変換器は早めに停止し、結果は正確になります。対応する最大精度は 32 ビットです。