IEEE 754 浮点数标准学习笔记

IEEE 754 浮点数标准学习笔记

一、简介

IEEE 754 是一种用于浮点数表示的国际标准,广泛应用于计算机系统。它定义了单精度(32位)和双精度(64位)两种格式。

二、单精度浮点数(32位)

1. 格式

  • 符号位(1位):0 表示正数,1 表示负数。
  • 指数位(8位):偏移量为 127。
  • 尾数位(23位):表示小数部分。

2. 编码规则

  • 符号位:0 或 1。
  • 指数位:存储值 - 127 = 实际指数。
  • 尾数位:1 + 小数部分(二进制表示)。

3. 示例

5.0 转换为单精度浮点数:

  • 符号位:0(正数)。
  • 指数位5.0 = 101.0 = 1.01 × 2^2,实际指数为 2,存储值为 2 + 127 = 129(二进制 10000001)。
  • 尾数位01 补足 23 位为 01000000000000000000000

最终表示:0 10000001 01000000000000000000000

三、双精度浮点数(64位)

1. 格式

  • 符号位(1位):0 表示正数,1 表示负数。
  • 指数位(11位):偏移量为 1023。
  • 尾数位(52位):表示小数部分。

2. 编码规则

  • 符号位:0 或 1。
  • 指数位:存储值 - 1023 = 实际指数。
  • 尾数位:1 + 小数部分(二进制表示)。

3. 示例

-50.5 转换为双精度浮点数:

  • 符号位:1(负数)。
  • 指数位50.5 = 110010.1 = 1.100101 x 2^5,实际指数为 5,存储值为 5 + 1023 = 1028(二进制 10000000100)。
  • 尾数位100101 补足 52 位为 10010100000000000000000000000000000000000000000000000

最终表示:1 10000000100 1001010000000000000000000000000000000000000000000000

四、特殊值

  • :指数位和尾数位全为 0,符号位为 0 或 1。
  • 无穷大:指数位全为 1,尾数位全为 0,符号位为 0 或 1。
  • NaN(非数字):指数位全为 1,尾数位不全为 0。

五、超出精度范围

根据 IEEE 754 的舍入规则(通常是“舍入到最接近”),如果舍弃部分的最高位是1,则尾数部分的最低位会加1。

posted @ 2025-04-11 10:48  菜狗非狗  阅读(793)  评论(0)    收藏  举报