浮動小数点表現の問題について

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
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」になります。
2023.03.13 23:03
saitohajimさん  
(No.2)
すみません。はやとちりでした。
0111111にしても1111111にしても10進数に戻すと127になりました。
ここでの問題は最大値を求める問題なので1111111を採用していると言うだけの話でした。
消せないので無視していただけると幸いです。
また理解に間違っている点がありましたら、返信していただきたいです。
2023.03.13 23:07
jjon-comさん 
FE ゴールドマイスター
(No.3)
> 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さん 
FE ゴールドマイスター
(No.4)
基本情報技術者平成18年秋期 午前問4
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

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop