计算机中浮点数的存储

1.浮点数

浮点数(floating point)这个名字其实就来自于:"小数点可以浮动(移动)"。

double类型的最大有效位数为16位。"有效位数(significant digits)" 指的是数字中能被精确区分的位数。

指数位的308是怎么算的?

指数位是 11 位,即共有:

复制代码
2¹¹ = 2048 种可能取值(0 ~ 2047)

其中:

  • 全 0(0)用于表示 "非规格化数(denormalized number)"

  • 全 1(2047)用于表示 "无穷大(∞)或 NaN"

  • 其它(1 ~ 2046)才是真正的指数范围

IEEE 754 使用一个"偏移量(bias)"来存储指数:

复制代码
真实指数 = 存储的指数值 - 1023

那么,
最小有效指数值 = 1 - 1023 = -1022
最大有效指数值 = 2046 - 1023 = +1023

那么2^1023 约等于 10^308次方。

"308" 是由 double 的 11 位指数表示范围(−1022 到 +1023)转换成 10 的指数得出的近似范围。

2.指数和尾数

复制代码
1.23 × 10²   = 123
1.23 × 10⁵   = 123000
1.23 × 10⁻³  = 0.00123

"1.23" 这部分对应 尾数位

"10² / 10⁵ / 10⁻³" 这部分对应 指数位

相关推荐
阿然1653 小时前
我如何使用 Claude Code 的每一个功能
人工智能·ai编程·claude
yaocheng的ai分身5 小时前
六位工程师的 AI 工作流程内幕
ai编程
yaocheng的ai分身5 小时前
基于ai coding的新计算
ai编程
代码扳手7 小时前
Golang + Genkit 实战:告别手动周报,让 AI 帮你整理一切!
go·ai编程
信码由缰7 小时前
如何构建 AI 智能体(2025 完全指南)
ai编程
寒秋丶1 天前
Milvus:数据库层操作详解(二)
数据库·人工智能·python·ai·ai编程·milvus·向量数据库
寒秋丶1 天前
Milvus:集合(Collections)操作详解(三)
数据库·人工智能·python·ai·ai编程·milvus·向量数据库
寒秋丶1 天前
Milvus:Schema详解(四)
数据库·人工智能·python·ai·ai编程·milvus·向量数据库
骑猪兜风2331 天前
独家揭秘 6 位工程师的 AI 工作流:流程比工具更重要
ai编程
用户4099322502121 天前
Vue 3模板如何通过编译三阶段实现从声明式语法到高效渲染的跨越
前端·ai编程·trae