まず入力の意味を決める
初期値は10進数0.1、精度はbinary32です。16進入力への切り替えは文字列の変換ではなく読み方の変更です。ワードを貼り付ける際は最上位ビットが左になるよう並べ、桁数も精度に合わせます。
数値・ビット演算・単位
10進数を入力して格納値と比較するか、完全な16進・2進ビット列を読み解きます。
入力はこのブラウザー内で処理され、サーバーには送信されません。
10進数は小数点とe/E指数に対応。16進数は8桁/16桁、2進数は32桁/64桁が必要です。ビット列には0x/0b接頭辞と空白・タブを使えます。
10進表示・有効数字9桁/17桁
0.100000001
正規化数
0.100000001490116119384765625
0.000000001490116119384765625
選んだ精度に直接丸めます。最近接、ちょうど中間なら偶数側を選択。精度や表現の変更は現在の文字列を再解釈します。上限1024文字、明示的な10進指数は−4096〜4096。
解析が完了しました。
浮動小数点変換では、画面に表示される小数と実際に格納された値を分けて確認できます。デバッガーで0.1と表示されても、内部の値が正確な十分の一とは限りません。完全な10進展開を開くと、その違いを数字で追えます。
IEEE754変換と16進数変換を同じ画面で扱えます。単精度・倍精度の違いを調べるときは、同じ10進入力のまま精度だけを切り替えてください。レジスターの内容を読む場合は、まず元のデータが32ビットか64ビットかを確かめます。
浮動小数点変換は、入力された正確な10進数をそれぞれの精度へ直接丸めます。0.1の単精度格納値は0.100000001490116119384765625です。倍精度では誤差が小さくなりますが、ゼロにはなりません。誤差の符号で目標のどちら側に着地したかを確認できます。
7FC00001と7FC00002はどちらもquiet NaNですが、ペイロードは1と2です。元のワードから読み取るため、符号とquietビットもそのまま残ります。単にNaNと表示するだけでは分からない差を、障害解析の記録に残せます。
初期値は10進数0.1、精度はbinary32です。16進入力への切り替えは文字列の変換ではなく読み方の変更です。ワードを貼り付ける際は最上位ビットが左になるよう並べ、桁数も精度に合わせます。
短い表示は32ビットなら有効数字9桁、64ビットなら17桁です。正確な値は別欄で全桁確認できます。誤差は格納値から入力値を引いた値なので、負なら格納値のほうが小さいことを意味します。
サンプルを開くと負のゼロやNaNを含む五つの候補をプレビューできます。適用後は入力と結果を一緒に戻せます。自動変換は350ミリ秒待機し、オフなら解析ボタンまたはCtrl/Cmd + Enterで更新します。
単精度は1/8/23ビット、倍精度は1/11/52ビットに分割します。格納指数と実効指数を別々に表示し、仮数の暗黙の先頭ビットも確認できます。全ゼロ指数の非正規化数では先頭が0になり、通常の1とは異なります。
10進文字列を正確な有理数として読み、目標形式へ一度だけ丸めます。単精度の中間値1.000000059604644775390625をほんの少し超えた入力も、先にdoubleへ変換して差を失うことなく、次の単精度値を選びます。
2進と16進の出力は元の全ビットを保持します。レポートには入力、精度、各フィールド、完全な10進値と丸め誤差を含められます。信号NaNもビットとして保存されるため、異なる処理系での読み取り結果と照合できます。
有限の2進小数は分母が2の累乗で表せます。十分の一には因数5が必要なので、2進展開は循環します。格納できる有効数の長さで丸められた結果を、完全な10進展開で確かめてください。短い0.1という表示だけでは違いが見えません。
32ビットは符号1、指数8、仮数23ビットで、正規化数では暗黙の1を加えて24ビットの精度です。64ビットは1、11、52で、精度は53ビットです。倍精度は値の間隔が細かく範囲も広がりますが、0.1を正確に表せるわけではありません。
正規化数では符号が正負を決め、格納指数から127または1023を引き、仮数に暗黙の1を付けます。指数が全ゼロなら先頭ビットは0で、全1なら無限大かNaNです。本ページでは特殊値に正規化数の式を誤って当てはめません。
できます。16進入力と対応する精度を選んで完全なワードを貼り付けます。例えばbinary32の3F800000は正確に1です。整数としての16進値を数値変換するのではなく、同じビットを浮動小数点として解釈します。
格納指数が0で仮数部が0以外の値です。実効指数は単精度で−126、倍精度で−1022となり、先頭ビットは0です。最小の正規化数より小さな値をゼロへ近づけて表すための仕組みです。
想定と違う結果ですか?