• ベストアンサー

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

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

  • nVIDIA
  • お礼率46% (520/1121)

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

  • ベストアンサー
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の性能で左右されるのですかぁ これから大変そう(><) どうもありがとうございました。

関連するQ&A

  • 浮動小数点の問題です。

    10進数+0.375を浮動小数点で記憶させ、その記憶領域のダンプリストを読み取ると、 0.375は16進数で(1)に、 -1は16進数で(2)となる。 答えは(1)は7F00、(2)8600です。 この2つの問題の途中式と解説をお願いします。 バイト型:バイト数は1バイト,負の補数は2の補数で表す 整数型:バイト数は2バイト,負の補数は2の補数で表す 浮動小数点:バイト数は2バイト,符号1ビット,指数部5ビット,仮数部10ビット ビット番号0:符号部.仮数部の符号が入っている.0なら正,1なら負 ビット番号1-5:指数部.負の値を2の補数で表す ビット番号6-15:仮数部.ビット番号6を小数点第1位とする仮数部の小数点以下の絶対値が、正規化された2進数で入っている 正規化とは,仮数部が2進数で0.1以上1.0未満になるよう指数部を増減する操作である

  • IEEE754 浮動小数点の問題

    -10.375(10進数)をIEEE754規格の単精度浮動小数点表現のビット列で示せ。という問題で、 ・仮数部の符号ビットが1bitで指数部が8bitで仮数部が23bitで合計32bitでいいんですよね?本によって割り当てが違うんですけど。 ・僕自身この問題を解いた結果、1 10000010 0100110・・・0 (一番前が、符号bit。真中が指数bit。一番後ろが仮数bit) で合っていますか?答え合わせのほどを。 どうか、願いします。

  • 浮動小数点数について

    現在情報処理の勉強をしているのですが、下記の問題が解けません。。 もし、わかりすく教えてもらえれば,,,と思い、、、 ↓ 数値を16ビットの浮動小数点数で表現する。10進数0.375を正規化した表現を、2進数であらわすとどうなるか求めよ。ここでの正規化は仮数部の有効数字よりも上位の0がなくなるように指数部を調整する操作である。 仮数部の符号(正は0 負は1)(1ビット) 奇数を2とする指数部で、負数は2の補数(4ビット) 仮数の絶対値(11ビット) で、 答えは 0111 1110 0000 0000 なのですが、この指数部がどうしてもわかりません。 初心者なので、、わかりやすく教えてくだされば、、うれしいな。と思うのです。

  • 浮動小数点の正規化方法について

    基本情報処理技術者試験を20日に受けます。勉強不足で困っています。どなたか教えてください。 問題「数値を16ビットの浮動小数点表示法で表現する。10進数0.375を正規化せよ:ここでの正規化は仮数部の有効数字よりも上位の0がなくなるように指数部を調節する操作である。」  答え「0111111000000000」 最初の1ビットが仮数部の符号、次の4ビットが2のべき乗の指数部で負数は2の補数、残りの11ビットが仮数部の絶対値 となっています。 0.375を2進数に直すところまではわかったのですが、次の正規化がよくわかりません。よろしくお願いいたします。

  • 浮動小数点表現

    2^{24}を32bit整数表現及び32bit(単精度)浮動小数点表現で表せ。 結果は16進数で示せ。 符号ビット:MSB 指数部n:7ビット 仮数部:24ビット という問題があるのですが、 解いてみたものの、答えもないのであっているのか分かりません。 以下の答えで合っているでしょうか? また、合っていなかったら、どのように解くのか教えていただけませんか? 整数表現 0100 0000H 浮動小数点 0100 1000 0100 0000 0000 0000 0000 0000

  • 基本情報の浮動小数点について

    基本情報技術者試験の勉強をしているのですが、浮動小数点の問題がどうしても解けません。問題を読んでもいまひとつ理解できず、四苦八苦しています。 下記の問題なのですが、教えていただけますでしょうか。 (平成12年に出題された問題(十進数0.375を正規化)は、理解できました) 問題集には解き方が載っているのですが、それが理解できません。解き方は以下です。 26.5を長さ32ビットの浮動小数点で表す (1) 26.5を16進数に変換  26.5の2進数:11010.1  11010.1の16進数:0001 1010 . 1000 1  A . 8   (2) 小数点位置の移動          小数点を左に2けた移動:1A.8 → (0.1A8) × 16の2乗  #ここまでは理解できます (3) 指数部の値16の2乗 → 16の0乗を(1000000)2進数=64とする  #ここがまるで分かりません        16の2乗の2を64に加える        1000000 … 64の2進数       + 10 … 2の2進数       ─────        1000010 … 指数の値とする  #「16の0乗を1000000=64とする」の部分が分かりません (4) まとめ  符号 指数部 仮数部   0│1000010│0001│1010│1000│00…0     16の2乗 1  A  8  #符号と仮数部は理解できるのですが、指数部が分かりません よろしくお願いいたします。

  • 浮動小数点の精度と範囲からすると、「0」はどうなるのでしょうか

    IEEE754の単精度による浮動小数点表現(符号部1ビット、指数部8ビット、仮数部23ビット)ですと、その表現できる範囲が数値の絶対値で、2^(-126)=1.2×10^(-38)から(2 - 2^(-23))×2^(127)=3.4×10^(38)になりますが、数値の「0」はどう表現されるのでしょうか。たとえば、C言語などで、変数の値が「0」の場合、コンピュータ内部の2進数表現はどのようになっているのでしょうか。よろしくお願いいたします。

  • 浮動小数点の表現(基本情報)

    数値を16ビットの浮動小数点表示法で表現する。形式は図に示すとおりである。10進数0.375を正規化した表現はどれか。ここでの正規化は,仮数部の有効数字よりも上位の0がなくなるように指数部を調節する操作である。(H9 秋 問13) S(1ビット):仮数部の符号(正は0,負は1) E(4ビット):2のべき乗の指数部で,負数は2の補数 M(11ビット):仮数部の絶対値 【参考にしたサイト】 http://www.jtw.zaq.ne.jp/kayakaya/new/kihon/text/fudo.htm 【質問】 Eは、負数は2の補数とありますが、Eの先頭1ビットは符号を表すのでしょうか? 手持ちの参考書にも同じような説明があったのですが、先頭が符号なのか分かりませんでした。IEEE754では、指数にE-127を使っているので、非負、負の表現は出来る事は分かりました。しかし、上記の場合は、非負、負の判断はEにも符号ビットがないと出来ないように思い質問しました。回答宜しくお願い致します。

  • 浮動小数点形式の問題

    数値を32ビット浮動小数点形式で表す。指数部は2を基数とし、負数は2の補数で表現する。10進数0.375をこの2を基数とした浮動小数点形式で正規化したものはどれか。ただし結果は16進数で表現する。 答え:7FC00000 という問題です。 まず0.375を2進数に 0.011 正規化 0.11 * 2^-1 指数部-1を2進数で求める -0000 0001 ->1111 1111 仮数部符号は正の数なので0 0111 1111 ???? ???? ???? ???? ???? ???? と・・・ ここの部分からわかりません・・・ (なぜか手持ちの参考書には省略してあり・・・) 7Fの部分はこれで間違いないでしょうか? またそのあとのC00000 はどうやって導くのか教えてください。 お願いいたします

  • 浮動小数点数

    再質問で畏れ入ります。 数値を32ビット浮動小数点形式で表す。指数部は2を基数とし、負数は2の補数で表現する。10進数0.375をこの2を基数とした浮動小数点形式で正規化したものはどれか。ただし結果は16進数で表現する。 答え:7FC00000 という問題です。 まず0.375を2進数に 0.011 正規化 0.11 * 2^-1 指数部-1を2進数で求める -0000 0001 ->1111 1111 仮数部符号は正の数なので0 0111 1111 ???? ???? ???? ???? ???? ???? と・・・ ここの部分からわかりません・・・ (なぜか手持ちの参考書には省略してあり・・・) 7Fの部分はこれで間違いないでしょうか? またそのあとのC00000 はどうやって導くのか教えてください。 お願いいたします