1TB硬盘为何只有931GB?一文讲透GB与GiB的区别与换算

发布时间:2026/9/19 5:55:32
1TB硬盘为何只有931GB?一文讲透GB与GiB的区别与换算 你是不是也遇到过这种情况新买的移动硬盘包装上清清楚楚印着“1TB”插上电脑一看可用空间只有 931GB 左右瞬间觉得自己被商家坑了。又或者你在下载系统镜像的时候明明写的是 4.7GB结果传了半天发现文件属性里显示“4.4GiB”开始怀疑是不是下载工具出了问题。别急这两种“不一样”的背后就是 GB 和 GiB 在“打架”。今天这篇内容咱们就把这两个单位彻底讲透。我会从定义、历史、换算、应用场景到踩坑实录全部过一遍争取让你看完之后再也不会被容量数字绕晕。这篇文章适合所有跟数据存储打交道的人无论是普通用户买硬盘还是开发者在规划存储资源都能从中获得可以直接用的判断方法。1. 先抛结论GB 和 GiB 到底差在哪一句话回答GB 是十进制的单位1GB 1,000,000,000 字节GiB 是二进制的单位1GiB 1,073,741,824 字节。这两个数字之间差了 73,741,824 字节约等于 7.37% 的容量差距。别小看这 7.37%当容量达到 TB 级别时这个差距会变得非常可观。一块 4TB 的硬盘用 GB 标注和使用 GiB 标注差了大概 295GB这几乎是一块小固态硬盘的容量了。1.1 单位定义的根本分歧十进制与二进制我们日常生活中使用的数字体系是十进制逢十进一。国际单位制SI规定kilo千、mega兆、giga吉这些前缀分别代表 10^3、10^6、10^9。按照这个规则1 千字节 1000 字节1 兆字节 1000 千字节1 吉字节 1000 兆字节。这是国际通用的标准也是所有国际计量体系的基础。但计算机的世界不太一样。计算机底层用的是二进制逢二进一。在二进制体系下2 的整数次幂是最“自然”的数字。1024 恰好是 2 的 10 次方2^10这个数字非常接近 1000于是早期的计算机工程师们就约定俗成地用 1024 作为“千”的进位基数。这个习惯从硬件寄存器容量到内存寻址一直延续下来。问题就在这里1000 和 1024 非常接近在小容量时代根本感觉不到差异。一张 1.44MB 的软盘不管用哪种算法存储的文件数量都不会有明显差别。但当存储容量进入 GB、TB 时代这个差异被不断放大最终形成了今天这种“两个标准并行谁都不服谁”的局面。1.2 7.37%的“缩水”是怎么算出来的我们来做一道很简单的数学题。按照二进制算法也就是 GiB 的标准1GiB 1024 MiB 1024 × 1024 KiB 1024 × 1024 × 1024 字节 1,073,741,824 字节按照十进制算法GB 的标准1GB 1000 MB 1000 × 1000 KB 1000 × 1000 × 1000 字节 1,000,000,000 字节两者的比值1,073,741,824 ÷ 1,000,000,000 ≈ 1.073741824所以1GiB 比 1GB 大了约 7.37%反过来1GB 约等于 0.931GiB。这就是 1TB 硬盘在系统里显示 931GB 的原因——硬盘厂商按 GB 标注容量1TB 1,000,000,000,000 字节操作系统按 GiB 统计容量显示为 931GB实际上是 931GiB只是系统把单位写成了 GB。注意这里我说的“系统把单位写成了 GB”正是混乱的根源。Windows 系统在显示磁盘容量时虽然显示的单位是“GB”但实际计算用的是 1024 进制也就是说系统显示的“GB”本质上是 GiB。这种“标注与实算不符”的做法坑了无数普通用户。2. 为什么会出现两套单位一段绕不开的历史要理解今天的混乱必须回到几十年前的计算机发展史。这不是单纯的学术问题而是一个关于行业习惯、标准组织和商业利益相互博弈的故事。2.1 从国际单位制说起SI的前缀规则国际单位制SI是全世界通用的度量衡标准规定了一套标准前缀kilo、mega、giga、tera、peta……分别对应千、兆、吉、太、拍。这套前缀的底数永远是 1000也就是 10 的幂。这是物理学家和工程师们所熟悉的世界一米等于一千毫米一千瓦等于一千瓦没有任何歧义。存储介质厂商天然倾向于使用国际单位制因为这样可以跟其他物理量保持一致在贸易和宣传中也有明确的法规依据。用 SI 标准来标注硬盘容量从法理上没有毛病。而且用 1000 作基数数字看起来更大营销上也更好看。这为后来的“容量之争”埋下了伏笔。2.2 计算机行业为什么坚持用1024计算机从诞生起就运行在二进制逻辑之上。内存寻址、寄存器设计、CPU 缓存容量全都遵循 2 的幂次方。早期的存储设备容量很小一张磁鼓可能只有几 KB 的容量当时没人觉得用 1024 还是 1000 有什么大不了于是“1KB 1024B”的用法在计算机圈子里逐渐流行起来。这种惯例最初只是工程师之间的默契并没有任何权威机构背书。但习惯的力量是强大的操作系统的开发者们沿用这套逻辑写代码文件系统按 2 的幂划分块内存按 2 的幂设计容量。等到后来有人意识到需要规范时这套用法已经深入骨髓改不动了。2.3 GiB的诞生标准组织终于出手为了解决两套进制混用导致的混乱国际电工委员会IEC在 1998 年专门制定了标准 IEC 60027-2引入了二进制前缀kibi、mebi、gibi、tebi……对应 KiB、MiB、GiB、TiB。其中“GiB”的全称是“Gibibyte”代表 2^30 字节也就是 1,073,741,824 字节。从此理论上有了一个清晰的划分GB 属于 SI 标准GiB 属于 IEC 标准。2005 年之后Linux 内核、macOS 的很多底层工具、各类专业软件都开始逐步采用新标准。但问题在于普通用户只认 GB 这个符号很少有人知道 GiB 的存在。绝大多数操作系统界面为了“照顾”用户习惯仍然用 GB 来标注容量哪怕它内部计算的其实是 GiB。这就造成了今天这种“标准归标准、事实归事实”的分裂状态。2.4 厂商和操作系统的“默契”谁在故意混淆聊到这里你可能已经猜到硬盘厂商用 GB 是“有理有据”的因为 SI 标准确实合法。问题出在操作系统上。拿 Windows 来说它显示“GB”时实际用的是 GiB 的数值却不明确标注出来直接把 500GB 硬盘显示成 465GB。macOS 在较新的版本中已经全面改用十进制显示直接显示 500GB但 Windows 至今仍然保留着旧的 1024 进制显示逻辑。这种“错位”带来了一个现实结果厂商没错系统也没错最终被误导的是用户。一个标着 1TB 的硬盘插到 Windows 上只有 931GB商家会告诉你“不同厂家换算方式不同”然后你就乖乖接受了这个解释——但很少有人真正搞清楚这个“换算方式不同”到底是什么。3. 实战换算怎么判断你手上的是 GB 还是 GiB理解了原理接下来是实操。很多场景下你根本不需要知道完整的 1073741824 这种大数字只需要掌握一个换算关系。3.1 一个万能的换算公式记住这两个常数就行GB 转 GiBGB 数值 × 0.9313 ≈ GiB 数值GiB 转 GBGiB 数值 × 1.0737 ≈ GB 数值举个例子。你买了一个标称 500GB 的固态硬盘500 × 0.9313 465.65GiB所以系统里显示 465GB 左右是完全正常的。再比如你在 Windows 上看到一个文件占用了 4.3GB 空间那么它的真实十进制容量大约是4.3 × 1.0737 ≈ 4.62GB也就是说如果按十进制标准比如某些网盘上传时的统计口径计算它其实是 4.62GB。实操建议判断一款软件到底用的是哪种进制有个简单粗暴的方法。看它显示的大容量文件的数值是否“很整齐”。如果 1TB 硬盘显示为 931GB 或 932GB基本可以确定是二进制算法如果显示为 999GB 或 1000GB那就是十进制算法。3.2 场景对照硬盘、内存、文件、网络速度不同场景下GB 和 GiB 的使用习惯完全不同。搞清楚这些你才能在不同的工具提示中不发生误判。硬盘容量厂商标称一律用十进制 GBWindows 显示的是二进制 GiB但单位写成 GB。macOS 新版已经统一改用十进制所以在 Mac 上买 1TB 硬盘会看到显示为 1TB不会“缩水”。这不是苹果良心发现只是它换了一种显示逻辑。内存容量内存是计算机中最典型的二进制容量8GB 内存实际上是 8GiB 内存也就是 8 × 1,073,741,824 字节。奇怪的是内存厂商在标称中从不标注 GiB而是直接写 GB。不过因为内存通常是整条出售容量固定大家也不太在意这个差异。文件大小Windows 资源管理器用 GiB 显示单位为“GB”macOS Finder 用十进制 GB 显示Linux 的 ls -lh 命令默认用 GiB 显示并标注清楚为“G”很多终端工具也用 MiB/GiB 作为默认单位。这就导致同一个文件在三个系统里看到的“大小”不一样。网络速度网络带宽是个容易混淆的领域但这里的差异不是 GB/GiB而是 bit 和 Byte 的区别。运营商说的 100M 宽带是 100Mbps即每秒 100 兆比特换算成字节是 12.5MB/s。这不属于 GB/GiB 的范畴但由于同样是单位换算问题经常被拉出来一起讨论。3.3 标注容量与实际容量的对照表我把常见的存储容量在二进制和十进制下的对应关系整理成一个表你可以直接收藏备用。标称容量十进制换算后的二进制容量系统常见显示容量差1GB0.9313GiB0.93GB68.7MB16GB14.90GiB14.9GB1.1GB64GB59.60GiB59.6GB4.4GB128GB119.2GiB119GB8.8GB256GB238.4GiB238GB17.6GB512GB476.9GiB476GB35.1GB1TB931.3GiB931GB68.7GB2TB1862.6GiB1.81TB137.4GB4TB3725.3GiB3.63TB274.7GB这个表不需要背你只要记住那个 0.9313 的系数所有容量都能快速估算。3.4 一个小技巧系统里怎么快速识别如果你想知道当前系统到底用的是哪种进制有个非常快的方法在该系统里新建一个空文件夹查看属性或信息。系统显示的容量信息通常只精确到个位看不出来。更准确的方法是找一个已知十进制容量的文件比如从网盘下载的标称 1GB 的文件看系统统计出来的大小如果显示为 1GB 或 1,000,000,000 字节那么该系统用的是十进制。如果显示为 1GB但精确字节数为 1,073,741,824那么系统用的是二进制只是显示成了 GB。Linux 用户可以直接用ls -l看精确字节数配合ls -lh看人类可读单位两相对比一目了然。4. 必须搞清楚的3个真实场景前面讲了很多理论和换算这里聊点实际的。下面这几个场景是我在这些年工作和生活中真实遇到过的每一个都因为 GB/GiB 的问题消耗过额外的时间和精力。4.1 备份和存储规划别让容量差吃掉你的预算我帮朋友做过一次家庭数据备份方案。他的原始数据加起来大约是 1.8TB按文件实际字节数统计通常是二进制他打算买一块 2TB 移动硬盘来存。当时我劝他买 4TB 的他不理解觉得 2TB 装 1.8TB 明明够用。问题就在这里。文件系统本身有元数据开销硬盘实际可用容量大约是 1862GiB而他的数据 1.8TB 是按二进制 GiB 统计的两者相差不多理论上确实够用。但一旦涉及备份的版本保留、哈希校验文件、文件系统格式化损耗可用空间会进一步压缩。更重要的是如果这些文件是按十进制的网盘统计口径同步下来的实际二进制体积可能已经达到 1.93TiB2TB 硬盘就非常紧张了。规划存储时建议至少留出 20% 的空余容量并且统一用一种单位来核算不要混着用。我个人的习惯是所有涉及存储容量的讨论一律用 GiB/TiB 来思考也就是操作系统实际报告的数值。4.2 软件开发和数据库单位错了会出事故写程序时GB/GiB 混用可能导致非常难排查的问题。我见过一个监控脚本报警阈值写的是 90GB但系统 API 返回的磁盘总容量是 120,031,511,代码写的是 120GB当系统报告已用容量为 88GiB约等于 94.5GB 十进制时脚本并没有触发告警但磁盘其实已经满了。这是因为脚本作者和系统 API 各用了一套进制。数据库领域也有类似的坑。PostgreSQL 的pg_database_size()函数返回的是字节数配套函数pg_size_pretty()默认用二进制单位显示。如果你按照 GB 去预分配表空间很容易低估实际占用。解决办法是写个简单的换算函数把所有容量都转成统一的字节数再比较避免在应用层做进制转换。注意如果你在代码中需要处理容量单位强烈建议以字节为唯一内部标准只在展示层做格式化。任何中间环节的单位换算都可能是 bug 的温床。4.3 购买决策商家标 GB软件显示 GiB该信谁买硬盘、U盘、存储卡时商家标的一律是十进制 GB。这不是欺诈而是 SI 标准下的合法标注。你需要做的是在购买前快速换算一下系统里实际可用的容量。比如你考虑买一块 1TB 的 NVMe 固态你需要知道的实际可用空间大约是 931GB。如果你的旧盘是 512GB实际可用 476GB确实翻倍了。但如果你从 1TB 升到 2TB实际可用从 931GB 升到 1862GB近一倍的增长这个账算清楚才能避免“买完发现没大多少”的错觉。另外云服务商的容量计费也有讲究。对象存储、云硬盘这类产品很多按“GB/月”计费但这个 GB 到底是十进制还是二进制各家并不完全一致。大多数云厂商在账单中使用十进制 GB而操作系统的监控图表可能用二进制 GiB。月度账单对不上监控数据时先查单位再查用量。5. 常见误区与问题排查实录最后这部分我整理了一些普遍存在的误区和排查经验帮助你快速定位问题避免在这些细节上反复折腾。5.1 误区一把 GB 和 GiB 当成同一个东西最常见的误区就是想当然地认为“反正只是差一点点”。在小容量时代这可能无所谓但在大容量存储普及的今天7.37% 的差异足以带来实质影响。尤其是做视频剪辑、虚拟机镜像、容器镜像这类大文件传输时按 GB 估算时间实际用 GiB 传输时间可能超出预期 7% 以上。5.2 误区二以为只有硬盘有“缩水”不仅是硬盘U盘、SD卡、移动固态硬盘、云存储配额、流量统计工具凡是存储介质都可能涉及 GB/GiB 混用问题。另外一些下载工具的“已下载大小”用的是二进制但速度显示用的是十进制导致下载速度和进度条对不上。这种体验上的混乱底层都是同一个问题。5.3 快速自查表几行命令看清容量真相这里给出几个最常用的命令帮你快速确认系统里的真实容量状态。在 Windows PowerShell 里用精确字节数查看分区容量Get-Volume | Select-Object DriveLetter, Size, SizeRemaining这条命令输出的 Size 值是字节你可以直接除以 1GB十进制或 1GiB二进制来核对数字。在 macOS 上用磁盘工具或终端命令diskutil list也能看到精确的字节数diskutil info / | grep Disk Size在 Linux 上用df -B1查看精确字节数用df -h查看人类可读版本df -B1 df -h把系统显示的字节数和标称容量做个除法就能确定厂商用的进制。逻辑很简单标称 1TB 的硬盘如果字节数约等于 1,000,000,000,000说明厂商用的是十进制如果字节数约等于 1,099,511,627,776那说明它是二进制标注比较少见。5.4 那些和 GB 同名的“其他领域”——顺便说点题外话搜索引擎上关于“GB”的热门词条不只有存储容量。比如学术文献管理工具 Mendeley 的引用格式里有一个“GB/T 7714”国家标准这里的 GB 是“国家标准”的拼音缩写跟容量没有任何关系。再比如游戏《Garry’s Box》简称 GB Pack相关的资源包里面的 GB 是游戏名字的缩写。工业铝型材领域的“GB 型材焊接库”则是指基于国家标准的型材库。这些都是“GB”在不同语境下的含义跟存储单位的 GB/GiB 之争完全是两码事。不过从这些五花八门的用法能看出一件事GB 这个词本身在多领域的高频出现恰恰是信息传播中“一词多义”普遍存在的写照。在技术交流中遇到 GB 先确认一下上下文可以省掉很多不必要的误会。如果你是和存储相关的人员沟通建议直接问清楚“你说的是 1000 进制的 GB还是 1024 进制的 GiB”对方大概率会心一笑因为这是个真正懂行的人才问得出来的问题。我自己后来养成了一个习惯在写技术文档、方案和报告时一律使用 GiB/MiB/KiB 来标注二进制容量并在首次出现时注明换算关系。虽然初期同事会问“这是什么”但解释清楚之后团队里关于容量的沟通反而顺畅了很多。这个小习惯算是从业这么多年来觉得最值得安利的一个经验。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询