float数据在内存中的存储方法

参考文档:IEEE754 浮点数
参考文档:百度文科
参考文档:资料

浮点型变量在计算机内存中占用4字节(Byte),即32-bit。遵循IEEE-754格式标准。一个浮点数由2部分组成:尾数m(或称底数)和指数e。
±mantissa × 2exponent
(注意,公式中的mantissa 和 exponent使用二进制表示)

  • 尾数部分 使用二进制数来表示此浮点数的实际值。尾数部分实际是占用24-bit的一个值,由于其最高位始终是1 ,所以最高位省去不存储,23-bit的位置实际表示了24-bit的二进制数字。
  • 指数部分 占用8-bit的二进制数,可表示数值范围为0-255。 但是指数应可正可负,所以IEEE规定,此处算出的次方须减去127才是真正的指数。所以float的指数可从 -127到127(阶码不能达到1111 1111,IEEE规定,当编译器遇到阶码为0XFF时,即调用溢出指令)。
  • 符号位 用来指示浮点数的正负,当符号位是1时,为负数,符号位是0时,为正数。
float数据在内存中的存储方法_第1张图片
float数据在内存中的表示

现在来计算float类型数据表示的最大值。

符号位 0 (代表正数)
指数位 1111 1110 (十进制值为254,代表阶码127)
尾数为 1111 1111 1111 1111 1111 111(转换后的尾数位1.11111111111111111111111)

实际代表的值 = + 转换后的尾数位 右移 阶码位
即1.11111111111111111111111右移128位 这个值为
340282346638528859811704183484516925440
或约为3.4028235E+38

你可能感兴趣的:(float数据在内存中的存储方法)