浮動小数点に関して

ESではNumberは64ビット倍精度浮動小数点方式

なので

  • 符号:1ビット(0が正、1が負)
  • 指数部:11ビット
  • 仮数部:52ビット

例えば、3は内部的には

0100 0000 0000 1000
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000

という表現になる

これは

  • 符号:0
  • 指数部:100 0000 0000
  • 仮数部:1000 0000 0000 ...

となる。

符号は0が正、1が負を表すので、今回は正。

指数部は10進数に変換すると1024。ここから64ビット倍精度浮動小数点方式の場合は-1023して結果的に1となる。

仮数部は1の位が1の少数と決まっており、今回の場合は1.10000000...、つまり1.1となる。(2進数であることに注意)

(例えば、仮数部が0010 0000 0000 ....の場合は、1.001となる)

よって

0b1.1 * 2^1
= 0b11
= 3

という結果になる。

参考

浮動小数点数について復習してみた - Qiita

IEEE 754 - Wikipedia