十進表現から binary32 フォーマットへの変換とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 十進表現から binary32 フォーマットへの変換の意味・解説 

十進表現から binary32 フォーマットへの変換

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/08/11 22:00 UTC 版)

単精度浮動小数点数」の記事における「十進表現から binary32 フォーマットへの変換」の解説

IEEE754 では実数値から対応する binary32 フォーマットへの変換丸め含めて厳密に定めている。 ここでは十進実数値から IEEE 754 binary32 フォーマットへの変換大まかに次のうになる実数値を 12.375 のように整数部と小数部で表すものとする整数部を二進法表現したものに変換する小数部を以下に示す技法変換する2つ変換結果組み合わせ、さらに変換加えて最終的な表現を得る。 小数部の変換: 12.375 の小数部 0.375 を例とする。これを二進小数変換するため、小数部に2をかけて整数部をとり、さらに2をかけて整数部をとるというように繰り返していき、小数部がゼロになるか精度の上限である二進23になるまで続ける。 0.375 x 2 = 0.750 = 0 + 0.750 ⇒ b−1 = 0 となるので、二進での小数部の一桁目はゼロとなる。そこでさらに 0.750 に2をかける。 0.750 x 2 = 1.500 = 1 + 0.500 ⇒ b−2 = 1 0.500 x 2 = 1.000 = 1 + 0.000 ⇒ b−3 = 1 となり、小数部が 0.000 となったのでここで変換停止する。 これで (0.375)10正確に二進で (0.011)2 で表されることがわかった十進有限桁数小数が必ず二進有限表せわけではない例えば、十進0.1二進では正確に表現できないため近似値用いることになる。 したがって、(12.375)10 = (12)10 + (0.375)10 = (1100)2 + (0.011)2 = (1100.011)2 となる。 IEEE 754 binary32 フォーマットでは、値を ( 1. x 1 x 2 . . . x 23 ) 2 × 2 e {\displaystyle (1.x_{1}x_{2}...x_{23})_{2}\times 2^{e}} という形式表現しなければならないので、1100.011 をシフトして整数部が一桁になるようにしなければならない。この例では3シフトするので ( 1.100011 ) 2 × 2 3 {\displaystyle (1.100011)_{2}\times 2^{3}} となる。 最終的に ( 12.375 ) 10 = ( 1.100011 ) 2 × 2 3 {\displaystyle (12.375)_{10}=(1.100011)_{2}\times 2^{3}} となる。 この結果から次が得られる指数部は 3 となる(バイアス加えるので実際130 = 1000 0010 となる)。 仮数部は 100011 となる(小数点より右側だけを仮数とする)。 したがってIEEE 754 binary32 フォーマットで 12.375 を表すと 0-10000010-10001100000000000000000 = 41460000H となる。 注: 68.123 を IEEE 754 binary32 フォーマットで表す場合考えてみよう。上述技法適用すると 42883EF9H というビット列が得られ最後4ビットは 1001 となる。しかし、IEEE 754デフォルト丸め方式により最終的に 42883EFAH となり、最後4ビット1010 となる。 例: 十進の1を変換すると ( 1 ) 10 = ( 1.0 ) 2 × 2 0 {\displaystyle (1)_{10}=(1.0)_{2}\times 2^{0}} となる。ここから次のことが導かれる指数は 0 である(バイアス加えるので 127 = 0111 1111 となる)。 仮数は 0 である(小数点より右側ゼロなので仮数部のビット列は全てゼロになる)。 従って実数 1 を IEEE 754 binary32 フォーマットで表すと 0-01111111-00000000000000000000000 = 3f800000H となる。 例: 0.25変換すると、 ( 0.25 ) 10 = ( 1.0 ) 2 × 2 − 2 {\displaystyle (0.25)_{10}=(1.0)_{2}\times 2^{-2}} となる。ここから次のことが導かれる指数は -2 である(バイアス加えるので 127+(−2)= 125 = 0111 1101 となる)。 仮数は 0 である(小数点より右側ゼロなので仮数部のビット列は全てゼロになる)。 従って実数 0.25IEEE 754 binary32 フォーマットで表すと 0-01111101-00000000000000000000000 = 3e800000H となる。 例: 0.375 を変換すると、 0.375 = ( 1.1 ) 2 × 2 − 2 {\displaystyle 0.375={(1.1)_{2}}\times 2^{-2}} となる。ここから次のことが導かれる指数は -2 である(バイアス加えるので 127+(−2)= 125 = 0111 1101 となる)。 仮数は 1 である(1.1小数点より右側は 1 = x1 のみである)。 従って実数 0.375 を IEEE 754 binary32 フォーマットで表すと 0-01111101-10000000000000000000000 = 3ec00000H となる。

※この「十進表現から binary32 フォーマットへの変換」の解説は、「単精度浮動小数点数」の解説の一部です。
「十進表現から binary32 フォーマットへの変換」を含む「単精度浮動小数点数」の記事については、「単精度浮動小数点数」の概要を参照ください。

ウィキペディア小見出し辞書の「十進表現から binary32 フォーマットへの変換」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「十進表現から binary32 フォーマットへの変換」の関連用語

十進表現から binary32 フォーマットへの変換のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



十進表現から binary32 フォーマットへの変換のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの単精度浮動小数点数 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS