とは何のことかと...
Decimal Value | Hex Value | Integer | Fraction |
1.999939 | 0x7fff | 1 | 16383/16384 |
1.75 | 0x7000 | 1 | 12288/16384 |
0.000061 | 0x0001 | 0 | 1/16384 |
0.0 | 0x0000 | 0 | 0/16384 |
-0.000061 | 0xffff | -1 | 16383/16384 |
-2.0 | 0x8000 | -2 |
0/16384 |
ということらしいが。
"consists of a signed, 2's complement integer and an unsigned fraction. To compute the actual value, take the integer and add the fraction." だと。
上位2bitと下位14bitを分けて考えたら良いようだ。
上位2bitが符号あり整数(2の補数)で、00(2)=0(10), 01(2)=1(10), 10(2)=-2(10), 11(2)=-1(10)と対応づいているようだ。
16進で0x7fffのF2DOT14値は上位2bitが01(2)なので、整数部は1。下位14bitは0x3fffで16383となる。下位14bitが全部1なので、限りなく1に近い小数を表現している的な感じか。
これに対して、この下位14bitを分子とする形で、分母を固定値16384(=0b11111111111111 + 1)とするような分数を考えると、16383/16384=0.999938964...であると。
2つの情報をガッチャンコして、1.999938964...が表現されていると。
固定小数点と併せてggると、中国っぽいpdfの中で「2.14 型有符号定点小数」という用語として登場するようだ。どっちにせよ分かりにくい。
0xffffのF2DOT14値は整数部が-1で小数部が0.999938964...であるので、和をとると-0.000061035...となるがなんだか絶望的な気持ちになるorz