電子書籍の厳選無料作品が豊富!

浮動小数点法を用いての2進数への変換に関して質問です。
10進数の(-0.0001)を浮動小数点表示を用いて2進数に変換しなさいという問題が全くわかりません。
どなたか詳しく解説してください。お願いします。

A 回答 (7件)

単精度実数ですね。


先ず、符号ですが正なら0、負なら1です。

符号が解決したら絶対値で考えましょう。
指数とか、仮数はおいておいて、0.0001を
何回2倍したら1以上になるか考えます。
14回ですね。これで、1.6384になります。

ということは本当の値は2の-14乗と端数の
和ということになります。
そこで、指数は-14と分かります。7ビット
なので、最大値0x7Fと0の中間0x3Fを基点
として、0x40は+1、0x3Eは-1、となります。

先の数値から整数部を取り除くと、0.6384です。
これも何回2倍したら1以上になるか考えます。
今度は1回ですね。ここからは2倍して1以上に
なれば1、ならなければ0として数字を並べます。
1以上になったら整数部は取り除きます。
こうやってできた数字の並びが仮数です。
ですから24桁求めたら終わりです。
(1)0.6384 ・・・ 1 ;2倍すると1以上になる
(2)0.276 ・・・ 0 ;2倍しても1以上にならない
(3)0.552 ・・・ 1 ;2倍すると1以上になる
(4)0.104 ・・・ 0 ;2倍しても1以上にならない
(5)0.208 ・・・ 0 ;2倍しても1以上にならない
(6)0.416 ・・・ 0 ;2倍しても1以上にならない
(7)0.832 ・・・ 1 ;2倍すると1以上になる
以下、省略

こうして、符号、指数、仮数ができます。
但し、これは演算技術であって、正しい考え方は
ここまでに回答してくれた人の意見を参考にして
ください。
    • good
    • 0

-(0.0001)10 × 10の0乗


= -(0.0000000000000110011001100110011001100…)2 × 2の0乗
≒ -(0.110011001100110011001100)2 × 2の-13乗

言えるのはここまで。

>符号1 指数部7 仮数部24ビットです。

ということで,IEEE 754標準とは異なる浮動小数点数形式のようです。
http://oshiete.goo.ne.jp/qa/4404606.html の私の過去の回答ANo.3

であるなら,「詳しく解説してください」に答えるためには,指数部・仮数部にどのような表現を採用しているのか,問題の前提条件を詳しく提示していただかねばなりません。
    • good
    • 0

#2、3、4です。



指数部は2の補数表現で良いの?


※「2の補数」は理解できている?
    • good
    • 1

#2、3です。



全然判っていないようですね…。

10進数の

0.5
0.25
-0.5

を質問者さんが言った浮動小数点法を用いて表せますか?


※ #1さんの回答には無反応だし。
    • good
    • 1

#2です。



> 失礼しました・・・4バイトの浮動小数点表示です

そんな補足じゃ全然駄目。

浮動小数点で表すのだから、

→仮数部が何ビットで、指数部が何ビットで、符号ビットはどうする。

みたいな書き方をしないと、誰にも判らないと言っているのです。


※「浮動小数点」で表すということが理解できていますか?

この回答への補足

符号1 指数部7 仮数部24ビットです。申し訳ないです。

補足日時:2011/06/05 15:08
    • good
    • 0

「浮動小数点法」の定義も書いてください。



それが判らないと、答えようがない…。

※浮動小数点で2進数を表す方法はたくさんあります。
※問題の前に説明が有るはずですが。

この回答への補足

失礼しました・・・4バイトの浮動小数点表示です

補足日時:2011/06/05 14:56
    • good
    • 0

まず、2進数のマイナス表記について理解する。


 (符号付きならMSBが符号になる)
次に、2進数の小数点以下は、上のビットから 1/2、1/4、1/8…となる。
 (0.5D=0.1B、0.25=0.01B、0.125=0.001B …)

上に示した2つを理解していないと絶対に解けない問題なんですが、
さて、質問者さんは何が分からなくて問題を解けないのでしょう。


公式みたいな物があってそれを覚えるだけで当面の問題は解決しますが
根本の解決には至りませんよ。
(公式を忘れる。公式を間違えて覚えるなどするってこと。)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!