首先在计算机中,浮点数数据表达的方式为
1.xxxxxx*2^n
其中xxxxx就表示尾数部分,n表示指数部分
float占用4字节,即32bit。由三部分构成,符号位,指数以及底数。
符号位:0或者1
指数位: -127~128,指数位采取移位储存的方式,即所储存的数据为元数据+127。
底数位:底数位为23bit,而事实上,因为高位永远是1省略不存,底数可以表达的精度为24bit的数据。
举例:
f = 14.25f = (1110.01)B = (1.11001*2^3)B
所以符号位S = 0, T = 11001B, E = 3 = 11B
另外指数可以为负数,在C++中,是把指数加上127来存储的,即E= E+ 127 = 130 = 10000010B
在x86系统中,小端模式,因此在内存中的存储为0x00|00|64|41
double同理。
例子参考
感谢。