● double値の変換

double型と標準の整数型を変換する場合は、通常、コンパイラが機能を実装しますので、プログラマは変換の結果を気にする必要はあっても、変換処理自体を気にする必要はありません。しかし、FIXEDVAL型のように、元々C/C++にはない型の場合は、独自の処理を作成する必要があります。


倍精度浮動小数点(double型)

フォーマットは次のようになります。



0 ビット 〜 51 ビットが仮数部、52 ビット 〜 62 ビットが指数部、63 ビットが符号となります。
値は、
    (mantissa + 1) × 2exp - 1023
仮数部の範囲は 0 ≦ mantissa < 1 で、正規化数の場合、仮数部の最上位の 1 は省略されています(暗黙整数)。そのため、仮数部は + 1 になります。
符号ビットが 1 の時は負となります。


変換処理例

FIXEDVAL型は固定小数点値なので、小数点以下は切り捨てる事にします。また、簡略化のため、オーバーフローの検出等は省略します。