實數包含有理數和無理數,直觀的看無理數是無限不循環的小數,有理數包含整數、無限循環小數和有限位的小數,現要着重討論的是小數的表示方法。blog
舉例說明:it
對於11.75先轉化爲二進制形式循環
11=8+2+1=10011二進制
0.75=0.5+0.25==0.11方法
轉化爲規格化的二進制指數形式爲11.75=10011.11=im
相似的對於-0.75轉化爲格式化的二進制指數形式爲-0.75=-0.11=img
對於這兩個數採用單精度浮點數格式()存儲分別爲 co
0_10000011_00111100000000000000000、1_01111110_10000000000000000000000。浮點數
符號位比較好解釋:0表示正數、1表示負數;ps
指數位8位e採用無符號數表示,範圍是0-255,可是爲了將實際指數範圍從-127~128來表達很小或者很大的數時須要將實際指數+偏移量127,即10000011=4+127=131,01111110=-1+127=126;
尾數位就是從小數點日後取23位,不夠的補0。
以上是單精度浮點數的表示規則,下面着重說明某些特殊值的表示:
一、0有正0和負0分別表示爲0_00000000_00000000000000000000000,1_00000000_00000000000000000000000
二、無窮大和無窮小分別表示爲1.0f/0.0f(分子只要不爲0.0便可) <=> 0_11111111_00000000000000000000000), -1.0f/0.0f <=> 1_11111111_00000000000000000000000
三、NaN表示爲0.0f/0.0f <=> 0_11111111_10000000000000000000000 尾數位只要不爲0便可
四、指數位爲0,尾數位不爲0表示非規格化的,這類數已經很是小了可是合法的能夠經過Float.intBitsToFloat(0b1_00000000_11000000000000000000000)進行驗證。