小数点進数変換ツール
0.1 のような小数を2進数・8進数・16進数に変換。くり返す部分と計算の過程も表示します。
–
例
入力の進数
変換先
打ち切る桁数(小数点以下)
指定 桁
ほかの進数では
計算の過程
コンピュータの中での表し方(IEEE 754)
プログラムの数(浮動小数点数)は、2進数を決まった桁数で丸めて記録します。いま入力した数がどう記録されるかと、元の数との差です。
倍精度(64ビット)
ビット列(符号|指数|仮数)–
16進数–
記録される値–
元の数との差–
単精度(32ビット)
ビット列(符号|指数|仮数)–
16進数–
記録される値–
元の数との差–
0.1 + 0.2 がぴったり 0.3 にならない理由
使い方
1
数を入れる
変換したい小数を入れます。開いたときは「0.1 を2進数に」を計算済みです。2進数・8進数・16進数の小数を10進数に直したいときは「入力の進数」を切り替えます。
2
変換先と桁数を選ぶ
変換先の進数を選び、割り切れない小数を打ち切る桁数(8・16・23・32・52桁、または自由な桁数)を決めます。打ち切ったときの誤差も表示されます。
3
答えと計算の過程を確かめる
くり返す部分は( )で示します。下の表で「小数部分を2倍して整数部分を取る」手順や、整数部分の割り算、コンピュータの中での表し方(IEEE 754)も確かめられます。
小数点進数変換ツールとは
10進数の小数を2進数・8進数・16進数に、2進数・8進数・16進数の小数を10進数に変換するツールです。0.1 のように2進数ではぴったり表せない小数は、くり返す部分を「0.0(0011)」の形で示し、決めた桁数で打ち切ったときの値と誤差も出します。計算の過程を表で見られるので、情報処理の試験勉強や授業の確認にも使えます。計算は分数で正確に行い、ブラウザの中で完結します。
機能・特徴
- くり返す部分が分かる割り切れない小数は「0.0(0011)」のように、くり返す部分を( )で示します。
- 桁数を決めて打ち切り、誤差も8・16・23・32・52桁、または自由な桁数で打ち切り、元の数との差を表示します。
- 計算の過程を表で小数部分を2倍(8倍・16倍)して整数部分を取る手順、整数部分の割り算、各桁の重みを表で見せます。
- IEEE 754 での表し方単精度・倍精度のビット列と記録される値、0.1 + 0.2 が 0.3 にならない理由まで分かります。
活用シーン
- 基本情報技術者試験などの基数変換の練習・答え合わせ
- 0.1 を2進数にするとどうなるかの確認
- 浮動小数点数の誤差(0.1 + 0.2)の原因の確認
- 16進数・8進数の小数を10進数に直す
- 固定小数点数で何桁あれば足りるかの見積もり
関連ツール
整数の2進数・8進数・10進数・16進数の変換や、ビット幅・2の補数は進数変換ツールで。文字とコードの変換はASCII変換ツール、Unix時間の変換はUnixタイムスタンプ変換ツールが便利です。
よくある質問
0.1 を2進数にするとどうなりますか?
0.000110011001100…と「0011」が無限にくり返す小数になり、0.0(0011) と書けます。2進数ではぴったり表せないので、決めた桁数で打ち切ります。たとえば小数点以下16桁で打ち切ると 0.0001100110011001 で、元の0.1との差は約0.0000092(9.16 × 10⁻⁶)です。
なぜ2進数では割り切れない小数があるのですか?
0.1 は分数にすると 1/10 で、分母の10は 2 × 5 です。2進数で有限の桁で表せるのは、分母(約分したあと)が2の累乗だけになる数に限られます。0.1 は分母に5が残るので、くり返す小数になります。10進数で 1/3 が 0.333… になるのと同じしくみです。0.5(1/2)や 0.75(3/4)はぴったり表せます。
2進数の小数を10進数に直すには?
小数点以下の各桁に、1/2・1/4・1/8…(2⁻¹・2⁻²・2⁻³…)をかけて足します。たとえば 0.1101(2) = 0.5 + 0.25 + 0 + 0.0625 = 0.8125 です。2進数の小数は、10進数ではかならず有限の桁で表せます。「入力の進数」を2進数にすると、この計算を表で確かめられます。
16進数や8進数の小数はどう求めますか?
2進数と同じく、小数部分に16(8進数なら8)をかけて整数部分を取ることをくり返します。0.1 は16進数で 0.1999…= 0.1(9)、8進数で 0.0(6314) です。16進数の1桁は2進数の4桁、8進数の1桁は2進数の3桁にあたるので、2進数を小数点から4桁(3桁)ずつ区切って変換することもできます。
何桁で打ち切ればよいですか?
使いみちによります。コンピュータの浮動小数点数では、単精度が仮数23桁、倍精度が仮数52桁です(先頭の1は書かずに持つので、実際には24桁・53桁の精度)。試験問題では「小数第○位まで」などの指示に従います。このツールは8・16・23・32・52桁と自由な桁数で打ち切れて、元の数との差も分かります。
0.1 + 0.2 がぴったり 0.3 にならないのはなぜですか?
0.1 も 0.2 も2進数ではくり返す小数なので、倍精度で記録すると少しずれた値になります(0.1 は 0.1000000000000000055…、0.2 は 0.2000000000000000111…)。足すと 0.3000000000000000444… になり、0.3 を記録した値(0.2999999999999999888…)と一致しないため、0.30000000000000004 と表示されます。下の「コンピュータの中での表し方」で確かめられます。
整数部分のある数(12.375 など)も変換できますか?
はい。整数部分は進数で割って余りを下から読む方法、小数部分はかけて整数部分を取る方法で変換し、両方の手順を表で表示します。12.375 は2進数で 1100.011 です。
負の数は変換できますか?
「-0.1」のように符号を付けて入れると、符号を付けたまま変換します。2の補数での表し方(ビット幅を決めた負の整数)は進数変換ツールで確かめられます。
入力した数は保存されますか?
いいえ。計算はすべてブラウザの中で行い、入力した数をサーバーに送ったり保存したりすることはありません。
このツールの更新履歴
-
改善
小数点進数変換ツールを専用ページにしました。0.1 のような小数を2進数・8進数・16進数に変換し、くり返す部分と計算の過程も表示します。