使用方法
- 「数值」默认 1,单位跟着「方向」走(PB 或 GiB),支持小数。改任意一项,或者光标停在数值框里按回车,都会立刻重算。
- 「方向」只有两项:pb2gib 是 PB 到 GiB(乘 931322.574615478515625),gib2pb 是 GiB 到 PB(乘 0.000001073741824)。点「交换方向」对调两头。
- 「小数位」默认 6,范围 0 到 15。这一对换算双向都是有限小数,所以调到 15 位仍然干净,不会出现无限循环的尾巴。
- 「批量换算」默认写好五行,每行「数值 空格 方向键」,例如 1048576 gib2pb。按 Ctrl+Enter(Mac 上 Cmd+Enter)一次算完;框被清空时点「换算」会自动补回示例。
- 结果区第一行是主结果,往下四行是固定口径:两个单位各是多少字节、1 PB 折多少 GiB、1 TB 折多少 GiB、1 PiB 折多少 GiB。这四行与小数位无关,专门用来核对两个前缀体系。
- 清单下方是十二行容量档位表,默认露出 6 行,点「加载更多」展开其余部分,点「导出 CSV」得到带字节序标记的文件。
- 「复制结果」复制整段清单;「复制对照表」复制正文那张容量对照表,字段之间是制表符,可以直接粘进表格软件。
- 数值为空、为负、超出所在方向上限,小数位留空或不是 0 到 15 的整数,批量行写成一整段没有空格、数值不是数字、方向键不在 pb2gib 与 gib2pb 之内,都会点明行号并说明原因。
拍字节转 GiB 能解决什么
厂商标的容量用十进制前缀(PB 是 10 的 15 次方字节),Windows 与多数监控面板显示的是二进制前缀(GiB 是 2 的 30 次方字节)。同一份磁盘,两边读出来的数不一样,本页就是把这两个体系对齐的那一次除法。
第一类是「硬盘为什么缩水」。标称 1 TB 的盘,操作系统显示 931 GB,差的那部分没有被谁吃掉:1 TB = 10^12 字节除以 2^30 正好等于 931.322575 GiB。缩水比例是 1 减去 2^30/10^9 的倒数辈份,也就是约 6.87%,这个比例在 GB、TB、PB 每一级都同样适用。
第二类是容价采购与容量规划的语言对齐。报价单写 1 PB 裸容量,规划设计要按 GiB 或 TiB 数:1 PB 等于 931322.574615 GiB,也等于 909.494702 TiB。把两句话统一到同一进制再谈利用率,才不会出现「买了 1 PB 却只有 909 T」的误判。
第三类是把 PB 与 PiB 分开选填报认同。人们常把 1048576 当成 PB 到 GiB 的倍数,但 1048576 是 2 的 20 次方,那是 PiB 到 GiB 的倍数。PB 到 GiB 是 10^15/2^30 = 931322.57,比 1048576 小足足百分之十二点六 —— 差出来的正是一整个 PB 与 PiB 的距离。
第四类是账单曲线与监控曲线的口径对齐。对象存储按 GB·月(十进制)计费,集群面板按 GiB(二进制)画使用率,同一份数据在两处相差百分之六点八七。做成本归因之前先用本页把 GiB 折回 PB 或反过来,两张表才落在同一把尺子上,配额告警也不会因为口径不同而反复触发。
还有一类边界要说清。本页只做单位名称之间的数字折算,不预估文件系统开销、RAID 冗余与副本倍数。一块 1 PB 的裸盘在操作系统里是 931322.57 GiB,再往下还要扣掉元数据与冗余,那一部分不属于单位换算能回答的范围。
换算原理与变量说明
整页只做一件事:把两个前缀体系在字节上对齐。PB = 10^15 字节,GiB = 2^30 = 1073741824 字节,于是 1 PB = 10^15 ÷ 2^30 GiB。这个比值写成既约分数是 30517578125/32768,十进制写出来就是 931322.574615478515625。
两个方向都是有限小数,这在单位换算里很少见。因为分母 32768 = 2^15 只含因子 2,任何 2 的幂次分之都一定能写成有限十进制小数;反过来 1 GiB = 2^30/10^15 = 0.000001073741824 同样有限。所以这一对换算不需要截断,页面上所有位数都是真实的。
名字本身就是为了解决这个歧义。1998 年 IEC 引入 KiB、MiB、GiB 这套带 i 的前缀,专门标记 1024 进制;此前 JEDEC 标准里 KB 一度也按 1024 用,于是同一个 KB 在内存条行业与硬盘行业指两个不同的数。本页两侧都写全后缀,正是为了避免同名不同义。
混淆点在于二级合并。PB 到 PiB 是 10^15 ÷ 2^50 = 0.888178419700125 PiB;PiB 到 GiB 才是 2^20 = 1048576。把这两步并作一步,就会得到 1 PB = 1048576 GiB 这个错误结论,比正确值大了约 1.126 倍。
| 单位 | 前缀进制 | 字节数 | 1 PB 折该单位 |
|---|---|---|---|
| 1 PB | 十进制 10^15 | 1000000000000000 | 1 |
| 1 PiB | 二进制 2^50 | 1125899906842624 | 0.888178 |
| 1 TB | 十进制 10^12 | 1000000000000 | 1000 |
| 1 TiB | 二进制 2^40 | 1099511627776 | 909.494702 |
| 1 GB | 十进制 10^9 | 1000000000 | 1000000 |
| 1 GiB | 二进制 2^30 | 1073741824 | 931322.574615 |
舍入只发生在显示层。内部全程双精度浮点,2 的幂次在二进制里精确,所以 931322.574615478515625 与 0.000001073741824 都能被原样表示;显示时按「小数位」四舍五入后去掉末尾多余的零。
完整示例(数值仅作演示)
默认值是数值 1、方向 PB 到 GiB、小数位 6。手算复算:10^15 ÷ 2^30 = 931322.574615478515625,保留 6 位小数得 931322.574615,页面主结果就是「1 PB = 931322.574615 GiB」。
1 PB = 10^15 字节,1 GiB = 2^30 = 1073741824 字节 1 × 931322.574615478515625 = 931322.574615478515625 GiB 反向:1048576 GiB × 2^30 ÷ 10^15 = 1.1259 PB
批量框五行:0.5 pb2gib 得 465661.287308 GiB;2 pb2gib 得 1862645.149231 GiB,正好是前者的四倍;1 gib2pb 走反方向,一个 GiB 只有 0.00000107374 PB;1048576 gib2pb 是 1 PiB,折回来是 1.1259 PB,这条可以用来验证 PB 与 PiB 不是一回事。每行按自己行首的方向键独立计算。
反向核对:点「交换方向」后数值仍是 1,方向变成 GiB 到 PB,结果只有 0.000001073741824,小数位 6 时按有效数字处理显示为 0.00000107374。边界值有两个:0 PB = 0 GiB;PB 方向上限 1000 PB 折 931322574.615479 GiB,GiB 方向上限 1000000000 GiB 折 1073.741824 PB,再大请拆开分次算。
拍字节转 GiB 对照表
下表把十进制与二进制单位按字节数从小到大排列,第三列是同一个单位折成的 GiB 数,按 6 位小数显示。字节一列是唯一的锚点,GiB 一列全部由它除以 2^30 得来,所以任意两行的比值一定等于它们字节数的比值。
| 单位 | 字节(B) | 折 GiB |
|---|---|---|
| 1 KiB(2^10) | 1024 | 0.000000953674 |
| 1 KB(10^3) | 1000 | 0.000000931323 |
| 1 MiB(2^20) | 1048576 | 0.000977 |
| 1 MB(10^6) | 1000000 | 0.000931 |
| 1 GiB(2^30) | 1073741824 | 1 |
| 1 GB(10^9) | 1000000000 | 0.931323 |
| 1 TiB(2^40) | 1099511627776 | 1024 |
| 1 TB(10^12) | 1000000000000 | 931.322575 |
| 1 PiB(2^50) | 1125899906842624 | 1048576 |
| 1 PB(10^15) | 1000000000000000 | 931322.574615 |
| 0.5 PB | 500000000000000 | 465661.287308 |
| 2 PB | 2000000000000000 | 1862645.149231 |
读这张表最有用的两行是 1 GB 与 1 GiB:字节数相差 73741824,GiB 数相差 0.068677,也就是那个百分之六点八七。再看 1 PiB 与 1 PB:字节数差 125899906842624,GiB 数差 117253.425385,换算成比例还是百分之十二点六 —— 十进制与二进制的差距会随前缀级别逐级放大。
结果边界、舍入与适用说明
- 数值为空时提示「数值不能为空,请填 0 到 1000000000 之间的数字,例如 1 表示 1 PB」,不会沿用上一次的结果。
- 数值写成负数时提示 PB 与 GiB 都是容量单位、请填 0 或正数;批量行里的负号同样被拦下并指出行号。
- PB 方向上限是 1000 PB,GiB 方向上限是 1000000000 GiB,超出都会给出拆分量计算的建议,不自动截断到边界值。
- 小数位留空、写成 3.5 这样的小数、或超出 0 到 15,分别给出三条不同提示,不自动取整也不回退到默认值。
- 结果小于 0.0001 时按有效数字显示,避免科学计数法吃掉位数;大于等于 1e15 时改用科学计数法。
- 百分比类结论(如缩水 6.87%、PB 与 PiB 相差 12.6%)是推导说明,页面不做百分比输出。
- 本页只换算单位名称,不计文件系统开销、RAID 冗余与副本倍数,也不区分操作系统是否用 GiB 的名称显示 GB。
- 页面不联网、不写本地存储,数值与批量内容只用于本次计算。
常见问题
为什么 1 PB 不是 1048576 GiB?
1048576 = 2^20,那是 PiB 到 GiB 的倍数。PB 是十进制的 10^15 字节,要先到 PiB(乘 0.888178419700125 PiB)再乘 1048576,合起来才是 931322.574615478515625 GiB。少乘那一步就会大出约 1.126 倍。
1TB 硬盘为什么只显示 931GB?
厂商的 1 TB 是 10^12 字节,操作系统显示的 GB 实际是 GiB 口径的 2^30 字节。10^12 ÷ 2^30 = 931.322575 GiB,这是同一份磁盘的两种写法,没有谁被吃掉。
1 PB 等于多少 PiB?
等于 0.888178419700125 PiB,方向反过来 1 PiB = 1.125899906842624 PB。这个 0.888 正是十进制 PB 与二进制 PiB 之间的全部差距,级别越高差距越大。
为什么这两个方向的小数都能写尽?
因为比值是 2 的幂次分之。2^30 只含因子 2,十进制里任何只含因子 2 和 5 的分母都能写成有限小数,所以 931322.574615478515625 和它的倒数 0.000001073741824 都不是无限循环小数。
批量里的 pb2gib 和 gib2pb 是什么意思?
pb2gib 是 petabyte to gibibyte 的缩写,表示这一行按 PB 到 GiB 算(乘 931322.574615478515625);gib2pb 反过来乘 0.000001073741824。每行可以写不同的方向键。
缩水的 6.87% 是怎么来的?
1 GB 标称 = 10^9 字节,实际显示为 10^9 ÷ 2^30 = 0.931322575 GiB,缺的那部分就是 1 − 0.931322575 = 0.068677,约 6.87%。这个比例在 GB、TB、PB 每一级都一样,因为每级都是同一个 2^30 与 10^9 的比值。
结果出现科学计数法是怎么回事?
当数值的绝对值大于等于 1e15 时,页面改用科学计数法显示 6 位小数。这是双精度浮点能安全逐个表示整数的极限附近,再多的整数位已经没有信息量。
输入的数据会上传到服务器吗?
不会。数值、方向与批量内容只在本页的 JavaScript 里做乘除,没有发起任何网络请求,刷新页面后输入即恢复默认值。