• ベストアンサー

単精度実数の範囲を求める方法を教えて下さい

Tacosanの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.7

IEEE754 単精度実数は符号 1ビット, 指数部 8ビット (オフセット 127), 仮数部 23ビット (指数部が 0 と 255 以外では整数部の 1 を除く) なので, ここで挙がっている形式とは異なります>#6. もちろん「最大値」から IEEE754 単精度っぽいことは推測できるんですが, ビットの振り分け方が違う (特に仮数部が 24ビットということから「仮数部を 16進 6桁で表現し, 指数部は 16 のべき」という可能性すらある) ので「どういう表現なのか」と聞いてるわけです. ところで, その「モノの本」のタイトルなどは挙げられないんでしょうか? まあ挙がったとしても確認できるかどうかはわかりませんが.

関連するQ&A

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

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

  • なぜ同じ実数型は整数型よりも広い範囲を表現できるのですか?

    なぜ同じ実数型は整数型よりも広い範囲を表現できるのですか? 素朴な疑問です。 整数型が表現できる範囲は単純で理解できるのですが、それだけに 実数型が同じ情報量(バイト数)でさらに広い範囲の数を表現できるのはなぜでしょう? 仮数部や指数部の数字を掛けたり足したりするだけで 全ての数をきっちり作れるというのはにわかには信じられません。 もしかして近似値を使っているのでしょうか?(0.099→0.1のように)

  • -5.75をIEEE754単精度実数表現

    -5.75(10進数)をIEEE754単精度実数表現する問題なんですが、 ・負だから符号ビット(1)…(1) ・5.75=(101.11000…)→1.0111000…×2^2 ・2=b-127 , b=129=(10000001)…(2) ・5.75を2bitで表したやつの小数点以下(0111000…)…(3) (1)(2)(3)を順に並べて『1 10000001 0111000…』 で合っていますか?よろしくお願いします。

  • 浮動小数点(エクセス64形式)、倍精度(64bit)仮数部は何bit?

    タイトルの通り、エクセス64形式の倍精度(64bit)のときの指数部、仮数部がそれぞれ何bitなのかわかりません。IEEE形式のものと、単精度(32bit)のものは調べられたのですが・・・ (421C 1999 9999 99A0) 等、いくつかエクセス64形式で表記された値があり、これを実数でいくつになるか確認するためです。 よろしくお願いします。

  • IEEE754 浮動小数点の問題

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

  • 16ビット浮動小数点数の表現方法について

    学校の課題において、ある数を2進数で表現し、さらにその数を16ビット浮動小数点数で表しなさい。またそのとき生じる誤差の名称を記しなさい、という課題がでており取り組んでいるのですが、ネットで調べていても計算方法が理解できず行き詰っております。どなたか計算方法の手助けをお願いできないでしょうか。 与えられた条件 符号ビット:1ビット(0:正、1:負) 指数部:4ビット 仮数部:11ビット 16ビット浮動小数点数で表す数 10011100011000011 です。計算方法を理解したいので、なるべく詳しくお願いいたします。 誤差の名称もできればご教授願います。

  • 浮動小数点数の内部表現について教えてください

    float型の内部表現を表示するプログラムを書いていくつか試してみたのですが、どこからどこまでが仮数部でどこからどこまでが指数部なのか良くわかりません。 曲がりなりにも自分で考えた結果は次のとおりです。 10進表示: 内部表現 ;2進の指数表現 2 :01000000000000000000000000000000;10.0*10^0 4 :01000000100000000000000000000000;10.0*10^1 8 :01000001000000000000000000000000;10.0*10^10 16:01000001100000000000000000000000;10.0*10^11 32:01000010000000000000000000000000;10.0*10^100 また、 1 :00111111100000000000000000000000;0.1111111*10^0 0.5 :00111111000000000000000000000000;0.0111111*10^0 0.25:00111110100000000000000000000000;? 0.125:00111110000000000000000000000000;? 0.0625:00111101100000000000000000000000;? となりました。最上位ビットが符号だということは分かります。 質問をまとめると、 (1) 10進で 0.5 の2進指数表現は 0.0111111*10^0 ということなのでしょうか。もしそれで正解なら、どうして 0.1*10^0 としないでわざわざ丸め誤差を含む無限小数で表すのでしょうか。 (2) 仮数部と指数部のビットは決められていなくて、例えば状況によって仮数部のビットが少なくなり指数部のビットが多くなったりするのでしょうか。 (3)仮数部での小数点はどこにあるのでしょうか。 (4)float 型の小数精度は最小6桁ということですが、これは10進で6桁なのか2進で6桁なのか教えてください。 どれか一つでも教えていただけると助かります。 使ったコンパイラは Borland C++ Compiler 5.5 です。 }

  • 浮動小数点表示 加算方法 IEEE

    指数部3bit、仮数部4bit、符号1bitの合計8bitの2進数の浮動小数点表示で、 (1)0.125+0.125+2.5 (2)2.5+0.125+0.125   (10進数) を計算せよ。 という問題です。 0.125(10)は00000000(2)、2.5(10)は01000100(2)となることはわかるのですが、この二つの計算方法がよく理解できません。 どちらかが誤差が生じたりすると思うのですが、それがよくわからず困っています。 教えてください。

  • 浮動小数点表現

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

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

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