存储容量换算 — 字节、KB 与 KiB 并排列出,顺便算清 1 TB 硬盘到底有多大

输入 1.5 GiB、500MB、8e3 KB 这样的容量,它给出精确字节数,并把十进制与二进制两套单位一次性列全;说明 1 TB 的硬盘为什么显示成 931 GiB,也能按 100 Mbps 这类速率算出下载要多久,再拿软盘、光盘、DVD、蓝光照比大小。输入的内容不会离开这台设备。

B · 传完这些数据要多久

同一个数的两个答案

同一个数,两个答案

标着 1 TB 的硬盘是 1012 字节:厂商用十进制词头,千、兆、吉就是 1000、106、109,和物理课上的读法一致。字节数不会因为谁来读它就变了,但一个程序如果拿 230 去除、又照样打印「GB」,它就会报 931。东西没少——那是 931 GiB,二进制单位;两者看着打架,只因为两种不同的除法共用了同一个名字。

所以上面把两套读法并排列出来,这本身就是答案:「这文件多大」问的其实是「多少字节」,单位是你事后选的口径。差值随容量变大:

标称 二进制口径 差多少
1 KB(1000 字节) 0.977 KiB 2%
1 MB 0.954 MiB 5%
1 GB 0.931 GiB 7%
1 TB 0.909 TiB 9%
1 PB 0.888 PiB 11%

现实里的分工是:硬盘、固态盘按十进制卖,内存按二进制算,Linux 的 ls -lh 输出二进制,Windows 显示的是字节数却挂着十进制的标签,而网速永远是十进制比特——所以「10 Mbps 的带宽」最多搬 1.25 MB/s。bit 和 Byte 差 8 倍这一条,就能解释大多数「下载速度比宣传慢八倍」的疑问,剩下的才是损耗。

输入怎么写

一个数字、可有可无的空格、然后单位。解析器故意收得很窄:

  • 只写数字 → 按字节。2048 就是 2048 字节。
  • 单独一个 b → 1 比特;单独一个 B → 1 字节。1000b 等于 125 字节。
  • 容量不分大小写:mb、MB、Mb 都按兆字节,kb、kB、KB 都按 1000 字节。严格按 SI,Mb 该是兆比特,但大家打字时两种都有,于是容量就按文件大小的常理读。
  • B 前面带 i → 二进制单位:MiB 是 1048576 字节(Mib、MIB 也算)。不带 i 就是十进制。
  • 拼写出来的 bit 一律算比特:bit、Mbit、Gbit。
  • 速率是例外,那里大小写有意义,因为它是唯一的区分:MB/s 是字节、Mbps 是比特、Gib/s 是每秒二进制吉字节。速率不写标记(100M/s)按比特读,这正是链路带宽的写法。
  • 容量框里写带“每秒”的单位会被拒绝,不会悄悄折算:那里填 100 Mbps 就等于把“100 兆比特”当成容量来问,而它问的是另一类量。报错会指向 B 区。
  • 科学计数和千分位都收:8e3 KB、1,024 MB、-3.5 GiB。

传输耗时是怎么算出来的

字节数 × 8 ÷ 每秒比特数,全部算术就这一行,也正因如此它被标成「理论」。真实链路跑不满的原因,转换器不可能知道:TCP 开头几个往返在慢启动里爬窗口,TLS 握手和跳转各吃掉一个往返,Wi-Fi 协商到的速率本就撑不住,「1 Gbps 共享宽带」是真的共享,某些盘的持续写速远早于总线就见顶,移动网络还会一边限速大文件一边让测延迟的包照常通过。

第二栏统一按 70% 折算,这是稳定链路上跑满时常见的区间,只为把「1 分 49 秒」变成更接近「2 分 33 秒」的数字,顺便提醒你两栏里哪个是乐观的那个。两个数都当下限用。如果实测比它慢两倍以上,该查的是链路,不是算术。

比大小的那一行

「大约相当于 3.4 张 DVD-5」用的是介质的标称容量:1.44 MB 软盘是 1474560 字节(也就是 1440 KiB,本身就是混用口径的产物),数据光盘按 700 MiB,DVD-5 按 4.7 × 109 字节,单层蓝光按 25 × 109。空白介质要留出导入区和纠错区,实际能写的比标签少几个百分点——这些数字是拿来感受量级的,不是刻录方案。

常见问题

Q:我该写 MB 还是 MiB? 报 bug 说文件多大时,用你系统显示的那个数,并注明是哪个系统显示的。买容量用十进制。标速率用十进制。只有当这个差别会影响决策(分区表、LVM extent、分块大小)时,才值得特意写 MiB。

Q:为什么只写数字时按字节,不按 KB? 字节是唯一不含除法的单位,所以它是唯一不可能读错的一种。别的选法都会丢信息,而精确字节数就摆在第一栏。

Q:这些数字有多准? 字节数在 253(约 9 PB)以内是整数精确值,双精度能原样存下;超过之后会明说,而不是假装还准。单位表按固定位数打印,所以 1/3 GiB 显示成 0.333 GB,不给一长串浮点尾数。

Q:我输入的内容会被传走吗? 解析、除法、排版都是脚本里的算术:没有 eval,也不用服务器替你算,输入的内容不会离开这台设备。

微信
微信
支付宝
支付宝