数据存储单位换算:GB/TB/PB 与 bit/byte 那些事
# 数据存储单位换算:GB/TB/PB 与 bit/byte 那些事
> 接口/接入点:免费单位换算 1690-1(单位换算,`type=dataStorage`)|是否免费:是|请求方式:POST/GET|返回格式:JSON|适用人群:开发者(容量/带宽/存储计算)|阅读时间:约 6 分钟
## 核心要点
- 数据存储类(`dataStorage`)支持:bit 比特 / b 字节 / kb 千字节 / mb 兆字节 / gb 千兆字节 / tb 太字节 / pb 拍字节 / eb 艾字节。
- 两大坑:**1024 vs 1000 进制**(二进制 vs 十进制)与 **bit↔byte 差 8 倍**。
- 直接调接口拿结果,避开自己推系数的进制混乱。
## Why:容量换算是最容易算错的一类
硬盘厂标 1TB 按 1000 进制,操作系统按 1024 进制,到手「少了」;带宽 100Mbps 实际下载约 12.5MB/s(÷8)。这些坑用接口统一换算最稳。
## What:数据存储单位代码
| 代码 | 单位 |
|------|------|
| `bit` | 比特 |
| `b` | 字节 |
| `kb` | 千字节 |
| `mb` | 兆字节 |
| `gb` | 千兆字节 |
| `tb` | 太字节 |
| `pb` | 拍字节 |
| `eb` | 艾字节 |
## How:字节与比特互转、各级互转
```python
import requests
def ds(num, frm, to):
r = requests.post(
"https://route.showapi.com/1690-1",
params={"appKey": "YOUR_APPKEY"},
data={"num": str(num), "from": frm, "to": to, "type": "dataStorage"},
timeout=10,
)
body = r.json()["showapi_res_body"]
if body.get("ret_code") != "0":
raise RuntimeError(body.get("remark"))
it = body["result_list"][0]
return it["result_str"], it["unit"]
print(ds(1, "gb", "mb")) # ('1024', '兆字节') 1GB = 1024MB
print(ds(100, "mb", "b")) # 注意 mb 是兆字节,bit 才是比特
print(ds(8, "bit", "b")) # ('1', '字节') 8 bit = 1 byte
```
```bash
curl -X POST "https://route.showapi.com/1690-1?appKey=YOUR_APPKEY" \
-H "content-type: application/x-www-form-urlencoded" \
-d "num=1&from=gb&to=mb&type=dataStorage"
```
## 进阶 / 边界
- **bit vs byte**:`bit` 是比特,`b` 是字节;8 bit = 1 byte。带宽常用 bit(Mbps),存储常用 byte(MB/s),别混。
- **进制**:接口内部采用其既定进制(二进制 1024 体系),`1gb→mb` 返回 `1024`。若你要「十进制 1000」口径,需自行换算或注明口径差异。
- **大单位**:`pb`/`eb` 用于数据中心级容量,接口同样支持,代码即 `pb`/`eb`。
## FAQ
**Q1:1GB 等于多少 MB?**
A:调 `from=gb&to=mb&num=1`,返回 `1024 兆字节`(二进制口径)。
**Q2:100Mbps 带宽下载速度多少?**
A:带宽是 bit,下载是 byte,÷8:`100mb` 对应速率约 `12.5MB/s`(先 `100mb→b` 再 ÷8,或调 `mb→b` 后除以 8)。
**Q3:为什么硬盘标 1TB 实际不到?**
A:厂商标称用十进制 1000,系统用二进制 1024,口径差导致「缩水」;接口按自身进制返回,属正常差异。
**Q4:bit 和 b 代码怎么区分?**
A:`bit` 是比特,`b` 是字节,调用时照代码写,别写反。
## 相关能力 / 下一步阅读
- [单位换算器参数怎么填?from/to 必填与常见报错排查](https://www.showapi.com/guides/unit-convert-params-errors-1690)
- [换算精度与浮点结果怎么处理?result 与 result_str 的区别](https://www.showapi.com/guides/unit-convert-precision-1690)
- [单位换算器支持哪些单位?14 大类与完整单位清单](https://www.showapi.com/guides/unit-convert-supported-types-1690)
- **本系列共 12 篇**:查看[单位换算器(免费单位换算)指南总目录](https://www.showapi.com/guides/unit-convert-guides-1690)