推荐资源
即梦AI

即梦AI

抖音出品 AI视频图片生成

Envato Elements

Envato Elements

无限下载设计素材与模版

Eagle

Eagle

图片素材文献管理神器

Setapp

Setapp

畅享240+款Mac优质应用

IEEE 754 浮点数转换器

深入理解计算机底层数值存储

二进制位结构 (32 bits)

符号 (Sign)
0
1 bit
指数 (Exponent)
8 bits
尾数 (Mantissa)
23 bits
公式值
+1.... × 20
指数偏移 (Bias)
0
真实指数 (E - Bias)
0 - 0 = 0

什么是 IEEE 754 标准?

IEEE 754 是计算机科学中用于表示浮点数(Floating-point number)的通用工业标准。 它定义了如何用二进制位来存储实数,解决了计算机如何处理极大或极小数值的问题。 标准规定了单精度(32位)和双精度(64位)两种主要格式,广泛应用于现代 CPU、GPU 和编程语言(如 JavaScript 中的 Number 类型即为双精度浮点数)。

为什么 0.1 + 0.2 !== 0.3?

这是新手程序员常遇到的经典问题。原因在于精度丢失。 在十进制中,0.1 是一个简单的分数(1/10);但在二进制中,0.1 是一个无限循环小数(0.0001100110011...)。 由于计算机的存储位数有限(尾数位只有 23 或 52 位),必须进行截断,这就导致了微小的误差。当进行加法运算时,这些误差会累积,导致结果不等于精确的 0.3。

单精度 vs 双精度

  • 单精度 (Float32): 占用 32 位(4字节)。精度约为 7 位十进制有效数字。适用于对精度要求不高但对显存/内存带宽敏感的场景,如实时 3D 游戏渲染、深度学习训练。
  • 双精度 (Float64): 占用 64 位(8字节)。精度约为 15-17 位十进制有效数字。适用于科学计算、金融应用和大多数现代编程语言的默认浮点类型。

位结构解析

浮点数由三部分组成:
1. 符号位 (Sign): 1位。0 代表正数,1 代表负数。
2. 指数位 (Exponent): 8位(单)或 11位(双)。采用“移码”表示,需要减去偏移量(Bias)才能得到真实指数。
3. 尾数位 (Mantissa): 23位(单)或 52位(双)。存储有效数字的小数部分,通常隐含了首位的 "1"。

特殊值的表示

IEEE 754 还定义了一些特殊值:
Infinity (无穷大): 指数位全为 1,尾数位全为 0。
NaN (Not a Number): 指数位全为 1,尾数位不全为 0。用于表示非法运算结果(如 0/0)。
Signed Zero (有符号零): +0 和 -0 在二进制表示上是不同的(符号位不同),但在逻辑比较中是相等的。

专注白噪音

雨声Lofi,为设计提供完美背景音。

精选神器

AD
阿里云

阿里云

爆款云服务器特惠抢购

腾讯云

腾讯云

云产品特惠 性价比首选

腾讯元宝

腾讯元宝

免费DeepSeek AI助手

小绿鲸

小绿鲸

英文文献阅读 科研必备

ADVERTISEMENT