小数点進数変換ツール

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の補数での表し方(ビット幅を決めた負の整数)は進数変換ツールで確かめられます。
入力した数は保存されますか?
いいえ。計算はすべてブラウザの中で行い、入力した数をサーバーに送ったり保存したりすることはありません。