情報:IT
高校生

符号ビット1ビット、指数部4ビット、仮数部11ビット、バイアス値7として、浮動小数点をデータの形式で保存するようなコンピュータを想定する。

②以下の浮動小数点数をデータの形式で表現したものを10進数に変換しなさい
答え)-10.5

やり方を教えてください泣

回答

浮動小数点数をデータの形式で表現するためには、以下の手順に従います。

1. 符号ビットを確認します。符号ビットが0ならば正の数、1ならば負の数です。
2. 指数部を2進数から10進数に変換します。ただし、指数部はバイアス値を引いた値を表します。バイアス値が7なので、指数部が0ならば-7、指数部が1ならば-6、...、指数部が14ならば7、指数部が15ならば8となります。
3. 仮数部を2進数から10進数に変換します。仮数部は小数点以下の値を表します。仮数部の先頭には必ず1があるため、小数点以下の値は1/2、1/4、1/8、...となります。仮数部の各桁の値を2のべき乗で掛けて足し合わせることで、小数点以下の値を求めることができます。
4. 符号ビットと指数部、仮数部の値を組み合わせて、最終的な10進数の値を求めます。符号ビットが1ならば負の数なので、求めた値に-1を掛けます。

具体的な例として、浮動小数点数「010110110110」を10進数に変換してみましょう。

1. 符号ビットは0なので、正の数です。
2. 指数部は「1011」なので、-7 + 1 + 2 + 8 = 4となります。
3. 仮数部は「0110110」なので、1/2 + 1/4 + 1/16 + 1/32 + 1/64 = 0.828125となります。
4. 符号ビットが0なので、求めた値は正の数です。指数部が4なので、仮数部の値を10^4倍して、0.828125 * 10000 = 8281.25となります。

したがって、浮動小数点数「010110110110」は10進数の8281.25となります。

分からなかったらゴメン😞

☁️

ご丁寧にありがとうございます。
1101001010000000だとどうなりますでしょうか泣

この回答にコメントする
疑問は解決しましたか?