この問題の解き方が分かりません。高校2年生の情報です。不明点は下にまとめて書き出しました。【問題】0.625を32ビット(浮動小数点数)で表現する方法を説明しなさい。【解答】0.625は0.5 +0.125なので2進法の小数表記では0.101となる。これを最上位ビットが1になるようにすると、1.01 × 2^-1となるので、仮数部は010 0000 0000 0000 0000 0000と表現できる。さらに、0.625 は正の数なので符号部は0、指数部は-1=指数部-127を計算すればよい。つまり、指数部は2進数で表すと01111110となる。これらを符号部、指数部、仮数部の順番に並べて16進数で表すと、0.625は浮動小数点数で3F200000と表現できる。【分からないところ】①「0.625は0.5 +0.125」←なぜ?②「2進法の小数表記では0.101となる」←2進法の小数表記とは??③「最上位ビットが1になるようにする」←どういう意味?④「1.01×2^-1」←なぜこうなる?⑤「010 0000 0000 0000 00000000」←どうやって求める?長文すみません。テストが近いので、どなたか教えていただきたいです。

1件の回答

回答を書く

1097603

2026-04-01 07:05

+ フォロー

0.625を32ビット浮動小数点で表すと、16進数で3F200000になります。その途中の考え方を①〜⑤の順に説明します。



①「0.625は0.5 + 0.125」なぜ?

0.625は分数で書くと5/8です。

5/8 = 4/8 + 1/8 なので

4/8 = 1/2 = 0.5

1/8 = 0.125

よって 0.625 = 0.5 + 0.125 となります。



②「2進法の小数表記では0.101となる」とは?

2進数の小数は

小数点の右1桁目が 1/2

2桁目が 1/4

3桁目が 1/8

という重みを持ちます。



0.101₂ なら

1/2 + 0/4 + 1/8 = 0.5 + 0 + 0.125 = 0.625

となるので、0.625は2進数で0.101と書けます。

これを「2進法の小数表記」と言っています。



③「最上位ビットが1になるようにする」とは?

浮動小数点の標準的な表し方では

1.xxxxxx × 2ⁿ

の形にそろえます。

このとき、左側の1を「必ず1にする」ように小数点の位置を動かします。

この「左端の1の桁」が最上位ビットです。



④「1.01 × 2^-1」になる理由

さっきの 0.101₂ を、左端を1にした形に直したいので

0.101₂ に 2をかけると 1.01₂ になります。

つまり

0.101₂ = 1.01₂ × 2の-1乗

です。

10進数で確認すると

1.01₂ = 1 + 0/2 + 1/4 = 1.25

1.25 × 1/2 = 0.625

なので合っています。



⑤「010 0000 0000 0000 0000 0000」はどう求める?

32ビット浮動小数点では

符号 1ビット

指数 8ビット

仮数(小数部)23ビット

の並びになります。



1.01₂ × 2^-1 のうち

先頭の「1.」は省略して、

小数点以下の「01」を仮数部として保存します。



つまり

1.01₂ → 「01」

これを左から順に並べ、残りの桁を全部0で埋めて23ビットにします。



01 0000 0000 0000 0000 0000

を3ビット区切りで書き直すと

010 0000 0000 0000 0000 0000

となります。



あとは

符号ビット: 正なので 0

指数: 真の指数は -1 なので、バイアス127を足して 126

126を2進数にすると 01111110

これを

符号 0

指数 01111110

仮数 01000000000000000000000

とつなげて2進数を16進に直すと 3F200000 になります。

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有