JVM之浮點數(float)表示
阿新 • • 發佈:2018-07-15
img 但是 nbsp alt 符號 否則 形式 十進制 浮點數
1. 浮點數的組成:符號位、指數位、尾數位。
1.1 符號位: 占1位,表示正負數;
1.2 指數位: 占8位;
1.3 尾數位: 占23位。
2. 浮點數的表示:
2.1 取值: sflag * m * 2(e-127)
2.1.1 sflag :符號位。 s = 0, sflag = 1; s = 1, sflag = -1
2.1.2 m : 尾數位。實際占用23位,但是根據e的取值,有24位。當e全為0時,尾數位附加0,否則附加1
2.1.3 e :指數位。
2.2 具體解析:(以-5為例)
2.2.1 內部形式:1 10000001 01000000000000000000000
2.2.1 符號位:s = 1 得出 sflag = -1;
2.2.2 指數位: 二進制為10000001,得出十進制 e = 129;
2.2.3 尾數位: 二進制為01000000000000000000000, 得出: m = 20 + 2-2 = 1.25;
2.2.4 最終取值: sflag * m * 2(e-127) = -1 * 1.25 * 2(129 - 127) = -5
3. float的特殊數字
JVM之浮點數(float)表示