计算机中的实数编码


IEEE 754标准制定了32位单精度浮点数和64位双精度浮点数格式,目前几乎所有计算机都采用IEEE 754标准来表示浮点数。

IEEE 754 标准下的浮点格式为:符号(最高位) 指数 有效数字

  • 单精度 1 符号位, 8位指数, 23位有效数字, 共32位数字
  • 双精度 1 符号位, 11位指数, 52位有效数字, 共64位数字

其中:

  • 符号位1表示负数, 0表示正数
  • 指数位也被称为阶码, 恒为整数,使用偏移码表示

浮点阶码:

IEEE 754标准中的指数也被称为阶码,采用移码表示,移码与补码相似仅符号位相异(补码1为负号,移码1为正号)
移码格式:1位符号位 其余为 真值+\(2^{N-1}\), 其中N表示位数
例:

# 8位编码下的127,偏移码为127+127=0111 1111B+0111 1111B=1111 1110B
# 8位编码下的-10,偏移码为-10+127=111 0101B
# 单精度浮点数据为8位, 双精度为11位

有效数字

以100.25位例

# 整数部分直接转化成2进制
# 100=110 0100B
# 小数部分采用除2取整法(0.25x2=0.5取0,0.5x2=1取1,除到没有小数即可,结果为01)
# 0.25=01
# 科学计数法
# 100.25 = 110 0100.01B = 1.1001 0001B x 2^6
# 舍弃整数部分的1
# 结果为 1001 0001

【例子】把100.25转化成浮点数据格式

  1. 100.25=0110 0100.01B=1.1001 0001Bx2^6 于是得出符号位为0
  2. 指数部分为6, 所以8位的阶码为6+127=133=1000 0101
  3. 有效数字部分为 1001 0001 0000 0000 0000 000
  4. 组合在一起: 0 10000101 1001 0001 0000 0000 0000 000 B = 0x 42C88000

如有错漏,望指正


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM