(3)float型に格納されていた値を16進数で表記したものを,10進数に変換しましょう。計算には電卓を使用して結構です。それぞれの数値は,ある物理定数を表しています。該当する物理定数名を答えてください。
1.(0x66ff0bbd)Hを,10進数値に変換する。
2進数に変換
(0x 6 6 f f 0 b b d)H
(0110 0110 1111 1111 0000 1011 1011 1101)B
役割ごとのビットに分けると
(0 1100 1101 111 1111 0000 1011 1011 1101)B
符号部( 1bit) : (0)B
指数部( 8bit) : (1100 1101)B = 205 = +78+127
仮数部(23bit) : (1111 1110 0001 0111 0111 101)B
1 3 5 7 14 18 21
2 4 6 12 15 19 23
16 20
符号部0より,
指数部が128だから,
仮数部は左からを表す。nは小数点以下第n位のこと。1になっている桁について全て合計すると仮数部の10進数値となる。
以上の結果をIEEE754の定義に従い計算すると,
float型を10進数で表したときの有効桁数は6,7桁であるため,
2.(0x43889333)Hを,10進数値に変換する。
2進数に変換
(0x 4 3 8 8 9 3 3 3)H
(0100 0011 1000 1000 1001 0011 0011 0011)B
役割ごとのビットに分けると
(0 1000 0111 0001 0001 0010 0110 0110 011)B
符号部( 1bit) : (0)B
指数部( 8bit) : (1000 0111)B = 135 = +8+127
仮数部(23bit) : (0001 0001 0010 0110 0110 011)B
4 8 11 14 18 22
15 19 23
符号部0より,
指数部が128だから,
仮数部は左からを表す。nは小数点以下第n位のこと。1になっている桁について全て合計すると仮数部の10進数値となる。
以上の結果をIEEE754の定義に従い計算すると,
float型を10進数で表したときの有効桁数は6,7桁であるため,
今回のまとめ
- 実数値の表現方法の規格IEEE754は大変シンプルです。
- IEEE754によって表現される数値は近似値です。