プロが教えるわが家の防犯対策術!

こんにちわ
すいません、よろしくお願い致します。

以下のIEEEが提唱する32ビット浮動小数点の表記形式を用いて、十進数の503.625を表記すると、どのようになるか。#IEEEの32it浮動小数点表記方式#符号部:1bit(0:正、1:負)指数部:8bit(2の乗数部分に127を加える ex.8乗→8+127=135=二進数で10000111)仮数部:23bit(仮数を二進小数で1.xxxxxとなるよう調整したxxxxxの部分)符号部、指数部、仮数部の順で左から詰め、仮数部の残りは0で埋める。それを16進数で表す。

A 回答 (3件)

値の表現方法は、たとえば国際単位系 (SI) で、103をキロ、10-2をセンチなどとする前の表記に似ている。

理論上、浮動小数点数では次のデータで数値を表現する。
http://article.kotaryuya.com/list?w=%E6%B5%AE%E5 …
* 仮数
o (仮数の)符号
o (値が非0の場合、1以上で基数未満の、または、1以下の)仮数の絶対値
* 基数(1より大きい整数)
* 指数(符号付き整数)

現在広く使われている表現方法ではいずれも基数を固定しており、あからさまな符号化を避けているため、実際に符号化されるのは、次の3つである。

* 符号部(1ビット)
* 仮数部(符号なし整数)
* 指数部(符号付き整数)

浮動小数点数では、数値の絶対値は(仮数部)×(基数)(指数部)となる。たとえば、0.5を浮動小数点数で表すと、基数が10の場合は5.0×10-1(5.0e-1)、基数が2の場合は1.0×2-1となる。

仮数部に割り当てたビット数をnとすると、2進数での有効桁数はn+1となる。これは、最上位ビット (MSB) は必ず1になり、表現の必要がないためである。なお、0を表す場合は符号部、仮数部、指数部のすべてのビットを0にする。

参考URL:http://detail.chiebukuro.yahoo.co.jp/qa/question …
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。

お礼日時:2011/06/30 14:12

503.625=1×256+1×128+1×64+1×32+1×16+0×8+1×4+1×2+1×1+1×0.5+0×0.25+1×0.125



2進数にすると、111110111.101。

指数化すると、1.11110111101×2の8乗。

符号部=0

指数部=8+127=135。2進数で10000111

仮数部=11110111101000000000000

繋げると0 10000111 11110111101000000000000

4ビットづつ区切ると0100 0011 1111 1011 1101 0000 0000 0000

4ビットごとに16進数にすると43FBD000。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。

順序立ててご説明頂きとても参考になりました。
 

お礼日時:2011/06/30 13:25

もし、Excelが使えるなら。



・A1セル
503.625

・B1セル(符号)
=IF(A1<0,"1","0")

・B2セル(指数部)
=DEC2BIN(INT(LOG(ABS(ABS(A1)))/LOG(2))+127,8)

・B3セル(仮数部)
=LEFT(HEX2BIN(MID(DEC2HEX(ABS(A1)*POWER(2,24-INT(LOG(ABS(A1),2)))),2,2),8)&HEX2BIN(MID(DEC2HEX(ABS(A1)*POWER(2,24-INT(LOG(ABS(A1),2)))),4,2),8)&HEX2BIN(MID(DEC2HEX(ABS(A1)*POWER(2,24-INT(LOG(ABS(A1),2)))),6,2),8),23)

・B4セル(結果)
=IF(A1,BIN2HEX(MID(B1&B2&B3,1,8),2)&BIN2HEX(MID(B1&B2&B3,9,8),2)&BIN2HEX(MID(B1&B2&B3,17,8),2)&BIN2HEX(MID(B1&B2&B3,25,8),2),REPT("0",8))

と入力してみて下さい。
    • good
    • 0

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