MiB 转吉字节(GB)

把二进制的 MiB 换算成十进制的 GB,也能把 GB、GiB、MB 反向换回 MiB。系数来自两套前缀体系的定义:页面讲清 1 GiB 比 1 GB 多出 7.3741824%、标称 1 TB 的硬盘为何在系统里只报 931.322575 GiB;打开页面就已填好一组示例,改数值按 Enter 立即重算。

按 Enter 立即换算;从/到下拉里带 i 的是二进制前缀,不带 i 的是十进制前缀。
默认 9 位,为的是完整显示 1.073741824;只允许 0 到 10 的整数。
默认已填示例;非法行会点名行号并说明跳过原因,不会静默归零。

提示:数值框按裸 Enter 触发,批量框按 Ctrl/Cmd + Enter 触发。

换算速查表(每行都由页面算法现场算出)

输入数值换算结果备注

速查表列出正向、反向与跨体系三类换算,默认显示前 12 行,导出与复制都直接取自同一份数据数组,不会漏掉未展开的行。

使用方法

把二进制前缀与十进制前缀对齐,最容易出错的不是算术而是选错单位。本页默认摆好 1024 MiB 换 GB 的样本,改任一输入框都会立刻重算;下拉框里带 i 的是 IEC 二进制前缀(KiB、MiB、GiB、TiB),不带 i 的是 SI 十进制前缀(kB、MB、GB、TB),先认清这一层再填数。

  1. 「数值」框只收数字,默认 1024。填好后单按 Enter(不叠 Ctrl、Cmd、Shift)就出结果,点击按钮反而多余。
  2. 源与目标在「从」「换算为」两个下拉里各选一个,字节、kB、MB、GB、TB 与 KiB、MiB、GiB、TiB 共九项任意两两可换;要反查就把 GB 选成源、MiB 选成目标,仍走同一套系数表。
  3. 「结果小数位」给到 9 是特意为 1.073741824 这类九位系数准备的,0 到 10 之间可调;它只管显示位数,脚本内部始终按完整双精度算完再舍入。
  4. 「交换单位」一键对调两个下拉并立即复核反向结果;「复制结果」把当前等式送进剪贴板;「载入示例」连同批量框一起还原成出厂样本。
  5. 多行文本框是给一批容量值用的:每行一个,按 Ctrl/Cmd + Enter 一次算完;哪行不合法会点名行号与原文说明跳过,绝不补成零。

下面的速查表先露 12 行,「加载更多」展开到 16 行;带 BOM 的 CSV 与 TSV 复制都取自同一份数组。结果区带 role="alert",读屏软件会朗读换算值。

能解决什么

第一类是看懂硬盘标称容量与系统报数的落差。磁盘厂商按十进制标容量,1 TB 就是 10 的 12 次方字节;操作系统按二进制报可用空间,把同一批字节数除以 2 的 30 次方,得到的是 931.322575 GiB。很多人第一眼以为硬盘缩水了,其实两边都没算错,只是用了不同的前缀体系,本页把这条除法摊开给你看。

第二类是核对内存、文件与流量报表的口径。把 1 GiB 直接当成 1 GB 会高估 7.3741824%,在批量采购、云盘配额、日志体积核算里,这个比例会随量级放大成可观的偏差。用本页把 GiB 换成 GB、把 MiB 换成 MB,报表就能对齐到同一把尺子上。

第三类是写文档时选对单位符号。不少人搜索「MiB转吉字节」,真正想问的是「我看到的这个数到底是二进制还是十进制」。结论是别看「兆」这个汉字,只看单位符号有没有那个 i;带 i 的按 2 的幂,不带的按 10 的幂。

凡是能靠一套字节基准系数解决的问题,都在这里收敛成同一条公式。

原理和变量

两套前缀的定义完全不同。IEC 60027-2 定义的二进制前缀以 2 的幂为底:1 KiB = 2 的 10 次方 = 1024 字节,1 MiB = 2 的 20 次方 = 1048576 字节,1 GiB = 2 的 30 次方 = 1073741824 字节,1 TiB = 2 的 40 次方。而 SI 十进制前缀以 10 的幂为底:1 kB = 1000 字节,1 MB = 10 的 6 次方,1 GB = 10 的 9 次方,1 TB = 10 的 12 次方。两者名字里都带「G」或「M」,系数却不是同一套,这正是 MiB 转 GB 属于跨体系换算、而不是同体系里除以 1024 的原因。

系数怎么来。把字节定为基准,给每个单位记一个系数 F:字节 F = 1,MiB F = 1048576,GB F = 1000000000。换算时先把输入值换成基准量,再除以目标单位的系数,即 out = v × F[from] / F[to]。选 MiB 转 GB 时乘 1048576 再除 10 的 9 次方,得到 0.001048576;选 GB 转 MiB 时取倒数,即 953.67431640625。页面脚本里没有把这两个长小数写成魔法数字,而是把九个单位各自的字节系数存成一张表,任何人都能顺着代码回溯到 2 的幂与 10 的幂的定义。

1 GiB 与 1 GB 的差。1 GiB = 1073741824 字节,换成十进制就是 1073741824 / 1000000000 = 1.073741824 GB,比 1 GB 多出 7.3741824%。这个百分比不是测量误差,而是两个定义之比减 1 的必然结果,量级越大差得越多,到 TiB 与 TB 这一档会更明显。

1 TB 硬盘为什么是 931.322575 GiB。厂商说的 1 TB 是 1000000000000 字节,操作系统以 GiB 为单位报数,于是 1000000000000 / 1073741824 = 931.322575 GiB。本页把 TB 与 GiB 都放进同一张系数表,这条结果由公式现场算出,不是额外背下来的常数,也不会在切换方向时忽然换一套算法。

那个字母 i 的来历。KiB、MiB、GiB 里的 i 来自 kibi、mebi、gibi,是 binary 与 kilo、mega、giga 缩合出来的专名,专门用来消除「千、兆、吉」到底指 1000 还是 1024 的歧义。内存条、文件大小、网络流量常用不同口径,读数值时先看单位符号而不是看汉字,才不会把两套体系混用。

完整示例

默认样本是 1024 MiB,页面加载时结果区直接给出 1024 MiB = 1.073741824 GB。它不是预先写死的一句话:脚本把 1024 乘 0.001048576 得到 1.073741824,再按 9 位小数显示。你把数值改成别的数、交换两个下拉框,或把小数位调小,这条等式会立刻被重新算出来。

批量框默认填了六行示例,按 Ctrl/Cmd + Enter 一次列出结果;某行非法时会点名那一行并说明跳过,不会输出一个莫名其妙的零。

对照表

速查表把正向、反向和跨体系三类换算排在一起,共 16 行,默认只显示前 12 行,点「加载更多」展开剩余 4 行。表格每一行都由脚本用同一条 out = v × F[from] / F[to] 现场算出:输入值取自上面那组示例,结果列算完再按当前小数位格式化,改小数位后整张表跟着变,不会出现两套数字。备注只标换算方向,不含数值;导出与复制都取自同一份数组,不会漏掉屏幕上未展开的行。

更能说明问题的是把两套前缀并排放。下表左列是二进制前缀及其字节数,右列是同名字头的十进制前缀及其字节数,两者只差一个字母 i,系数却逐档拉开:

二进制前缀字节数(2 的幂)十进制前缀字节数(10 的幂)
1 KiB10241 kB1000
1 MiB10485761 MB1000000
1 GiB10737418241 GB1000000000
1 TiB10995116277761 TB1000000000000

可以看到 GiB 档比 GB 档多出 7.3741824%,正是这个差距让报表在 GB 量级必须分清体系。表中的字节数都是定义值,页面换算用的也是同一张系数表,二者不会出现两套数字。

结果边界与舍入

常见问题

MiB 和 MB 到底差在哪?

差在底数。MiB 是 IEC 二进制前缀,1 MiB = 2 的 20 次方 = 1048576 字节;MB 是 SI 十进制前缀,1 MB = 10 的 6 次方 = 1000000 字节。两者都念「兆」,却相差 48576 字节。看单位符号有没有那个字母 i 最稳妥:带 i 按 2 的幂,不带 i 按 10 的幂。

为什么 1 TB 硬盘在系统里只有 931.322575 GiB?

不是缩水,是口径差。厂商的 1 TB 是 1000000000000 字节,操作系统用 GiB 报数,除以 1073741824 得到 931.322575 GiB。两边用的是同一批字节,只是分母不同。本页把 TB 与 GiB 放进同一张系数表,这条结果由公式现场算出。

1 GiB 等于多少 GB,差多少?

1 GiB = 1073741824 字节 = 1.073741824 GB,比 1 GB 多 7.3741824%。这个比例来自 2 的 30 次方除以 10 的 9 次方,不是测量误差。把 GiB 当 GB 用会系统性高估,量级越大偏差越明显。

系数 0.001048576 是怎么来的?

它是两个定义之比:MiB 的字节系数 1048576 除以 GB 的字节系数 1000000000,即 1048576 / 1000000000 = 0.001048576。页面脚本把系数写成「各单位字节数相除」,而不是直接抄一个查表值,方便逐级核对到 2 的 20 次方与 10 的 9 次方的定义。

KiB、MiB、GiB 里的 i 是什么意思?

来自 kibi、mebi、gibi,是 binary 与 kilo、mega、giga 缩合出的专名。国际电工委员会用这套带 i 的符号专门表示 2 的幂,把不带 i 的 kilo、mega、giga 留给 10 的幂,目的就是消除「千兆吉到底指 1000 还是 1024」的长期歧义。

反向换算准确吗,能复算回原值吗?

能。反向用同一张系数表取倒数:MiB = GB × 953.67431640625。例如 1 GB 得 953.674316406 MiB,再换回 GB 得 1。点「交换单位」即可现场验证,看到的差异只来自显示小数位,不是公式出了偏差。

内存、硬盘、流量为什么口径不一样?

历史与标准不同:内存按地址空间组织,天然贴近 2 的幂;磁盘厂商与通信行业习惯十进制,便于标称整数;文件系统又常按二进制簇报数。于是同一台机器上可能出现三套口径。本页不替你判断某个数值该用哪套,只负责把选定的两个单位按定义互转。

输入文字、留空或超大数会怎样?

都会给具体报错,不会静默归零。数值为空或不是数字、小数位不在 0 到 10、数值超出正负一万亿,分别有各自的提示文案并停止换算;批量框里某一行非法,会点名第几行和那一行的原文,说明跳过原因,其余合法行照常换算。全部计算在本地完成,不发请求也不写 Cookie。

相关工具

下面三个工具都与整理数值和文案有关,按需取用,内链均为站内已上线页面。