• ベストアンサー

浮動小数点は32ビットとは限らないのですか?

http://oshiete1.goo.ne.jp/kotaeru.php3?q=868029 の質問みて自分で実際にやってみました。 そしたら、仮数部が24ビット超えてるじゃないですか! ビット数が変わることもあるとしても 符号部と指数部のビット数は固定ですよね。 変わるのは仮数部のみですか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#21649
noname#21649
回答No.4

マイクロソフトですと.Windows以前に2回変わっています。Windowsになってからはわかりません。 >は固定ですよね。 ではないです。少なくとも.数値演算パッケージの製造元によって色々な解釈がありますから。コボルやリスプではこれを動的に作ることも可能です。 また.私が使うような変な計算ですと.不定マタは動的に割り当てないと簡単に桁あふれしてしまいます。ソフトの作りやすさから.不定で作成しておいて.使うデータで仮に決定し計算.計算に失敗したら.指数部の桁を変更して再計算.です。

nVIDIA
質問者

お礼

これはおどろき!教科書にはそんなことのってなかったですぅ!先生も教えてくれなかったしこれは発見したですぅ!どうもありがどうございますですぅ!(^0^)

その他の回答 (3)

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.3

「浮動小数点数」という枠組みだけであれば、指数部・仮数部とも、特定のビット数でなければならないという制限はありません。実際、過去には指数部7ビット・仮数部16ビットという浮動小数点数を採用したコンパイラがありました(笑) 別の要求事項、例えば「〇〇コンパイラの××浮動小数点型の指数部・仮数部のビット数」というような縛りがあるのであれば、その縛りによって別途制限されます。

nVIDIA
質問者

お礼

先生の性格からしてそんな意地悪な性格じゃないから今回そこまでは出ないと思います。ただあの笑顔の裏になにが隠されているかです(笑) 新しい発見ありがとうございます。

回答No.2

わたしの知る限りで、単精度実数が32ビット、倍精度実数が64ビット、長倍精度実数が80ビットです。 今では、CPUのレジスタ長が大きくなり、浮動小数点演算回路もCPUの中に入ってきているので、さらに大きなビット数になってると思います。 仮数部・指数部のビットの配分は、それぞれのビット数で違って当然です。

nVIDIA
質問者

お礼

32ビットのほかに64ビットや80ビットがあるんですね! UPUの性能で左右されるのですかぁ これから大変そう(><) どうもありがとうございました。

回答No.1

86系内部でも32ビット、64ビット、80ビットと3通りあります。通常IEEEの基準で指数部仮数部のビット数を決めますが、自分でやるなら任意ですよ。

nVIDIA
質問者

お礼

32ビットのほかに64ビットや80ビットがあるんですね! UPUの性能で左右されるのですかぁ これから大変そう(><) どうもありがとうございました。