浮点数在内存中存储方式三段:符号位,指数位,小数位
浮点数的转换 1.将浮点数转换为二进制 2.用科学计数法表示二进制浮点数 3.计算指数偏移后的值
float类型:1位符号位,8位指数位,23位尾数位 ( 指数要加上127的偏移数)
31 23-30 0-22
double类型:1位符号位,11位指数位,52位尾数位 ( 指数要加上1023的偏移数)
63 52- 62 0-51
float和double类型的数据在计算机内部的表示方式是相同的,但由于所占用的存储空间的不同,其分别能够表示的数值范围和精度不同
例子:8.25在内存中的float表示
二进制1000.01->1.00001*(2^3)
符号位:0
指数:127+3->130 -> 1000010
小数; 00001
内存中的8.25的float表示:
0 10000010 00001000000000000000000 -> 0x41040000
float表示的数据范围比int的大(都是4字节),但是能表示的具体数字的个数和int相同
float可表示的数字之间不是连续的,存在间隙,而且只是一种近似的表示方法,不能作为精确数使用,由于其内存表示方法复杂,float的运算速度比int慢得多