HOME»基本情報技術者試験掲示板»浮動小数点表現の問題について
投稿する
間違っています。10進数の127は
2進数で 1111111(1が7つ並ぶ)になります。
2進数で 0111111(1が6つ並ぶ)は 10進数で 63 です。
浮動小数点表現の問題について [4768]
saitohajimさん(No.1)
問題の解説は以下で、指数を求めている部分でわからない事があります。127を二進数で表現したら0111111になるのになぜ回答では1111111となるのでしょうか?
前提といたしまして、最近勉強を始めたもので皆様に比べ、理解していない部分が多々あると思います。ですので優しく教えていただけるとありがたいです。
平成18年度秋季 問4(解説)
仮数部、指数部、仮数部の符号それぞれについて考えていきます。
[仮数部(M)]
絶対値が最も大きくなるようにしたいので、16ビットすべてを1とした「1111 1111 1111 1111」を設定します。
[指数部(E)]
図に指数部(E)は、0≦E≦127とあるので最大となる127を2進数で表現した「111 1111」を設定します。
[仮数部の符号(S)]
表現したい値は最大値なので非負となる0を設定します。
上記のビット列を浮動小数点形式に従って合わせると「0111 1111 1111 1111 1111 1111」となり、さらにこれを16進数に変換すると「7FFFFF」になります。
前提といたしまして、最近勉強を始めたもので皆様に比べ、理解していない部分が多々あると思います。ですので優しく教えていただけるとありがたいです。
平成18年度秋季 問4(解説)
仮数部、指数部、仮数部の符号それぞれについて考えていきます。
[仮数部(M)]
絶対値が最も大きくなるようにしたいので、16ビットすべてを1とした「1111 1111 1111 1111」を設定します。
[指数部(E)]
図に指数部(E)は、0≦E≦127とあるので最大となる127を2進数で表現した「111 1111」を設定します。
[仮数部の符号(S)]
表現したい値は最大値なので非負となる0を設定します。
上記のビット列を浮動小数点形式に従って合わせると「0111 1111 1111 1111 1111 1111」となり、さらにこれを16進数に変換すると「7FFFFF」になります。
2023.03.13 23:03
saitohajimさん(No.2)
すみません。はやとちりでした。
0111111にしても1111111にしても10進数に戻すと127になりました。
ここでの問題は最大値を求める問題なので1111111を採用していると言うだけの話でした。
消せないので無視していただけると幸いです。
また理解に間違っている点がありましたら、返信していただきたいです。
0111111にしても1111111にしても10進数に戻すと127になりました。
ここでの問題は最大値を求める問題なので1111111を採用していると言うだけの話でした。
消せないので無視していただけると幸いです。
また理解に間違っている点がありましたら、返信していただきたいです。
2023.03.13 23:07
jjon-comさん(No.3)
★FE ゴールドマイスター
> 127を二進数で表現したら
> 0111111になるのになぜ回答では
> 1111111となるのでしょうか?
> すみません。はやとちりでした。
> 0111111にしても
> 1111111にしても10進数に戻すと127になりました。
間違っています。10進数の127は
2進数で 1111111(1が7つ並ぶ)になります。
2進数で 0111111(1が6つ並ぶ)は 10進数で 63 です。
2023.03.17 18:18
jjon-comさん(No.4)
★FE ゴールドマイスター
基本情報技術者平成18年秋期 午前問4
https://www.fe-siken.com/kakomon/18_aki/q4.html
この浮動小数点形式で最大値を表すビット列は,
解説のとおり,次のビット列になります。
[0] [111 1111] [1111 1111 1111 1111]
参考までに,この指数部はどんな数かというと。
と説明されていますから,
-64乗 から +63乗 の指数を [000 0000]から[111 1111]に
対応づけていることが分かります。
さらに,
と説明されていますから,
1 × 0.[1111 1111 1111 1111] × 16の63乗
≒ 16の63乗
≒ (2の4乗)の63乗
≒ 2の252乗
となります。
https://www.fe-siken.com/kakomon/18_aki/q4.html
この浮動小数点形式で最大値を表すビット列は,
解説のとおり,次のビット列になります。
[0] [111 1111] [1111 1111 1111 1111]
参考までに,この指数部はどんな数かというと。
> 指数部(E):実際の指数に64を加算したもの 0≦E≦127
と説明されていますから,
-64乗 から +63乗 の指数を [000 0000]から[111 1111]に
対応づけていることが分かります。
さらに,
> (-1)のS乗 × 16のE-64乗 × 0.M
と説明されていますから,
1 × 0.[1111 1111 1111 1111] × 16の63乗
≒ 16の63乗
≒ (2の4乗)の63乗
≒ 2の252乗
となります。
2023.03.17 18:34