1. 程式人生 > >JVM之浮點數(float)表示

JVM之浮點數(float)表示

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)表示