单位换算 · 数据存储

数据传输

bps/Kbps/Mbps/下载时长估算

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 61 次使用
编辑任一单位,其余实时联动换算 · 14 单位
有效数字 8 极大 / 极小值自动科学计数法 · 以「比特每秒 bps」为换算基准
「100M 宽带」下载为什么只有十几 MB?因为运营商说的「100M」是 100 Mbps(兆比特每秒),而下载软件显示的是 MB/s(兆字节每秒)。1 Byte = 8 bit,故 100 Mbps ÷ 8 = 12.5 MB/s —— 这就是 100M 宽带满速也只有「十几 MB」的原因。看到 小写 b(bps)是比特、大写 B(B/s)是字节,差整整 8 倍。
速率尺度直观对比 · 当前值 100 Mbps 在 拨号 56k → 光纤 对数标尺上的位置
下载耗时 文件 @ 当前速率 = · 理论值,文件按十进制字节算

常用换算速查 quick reference · 点击填入

单位简介 about the units

就绪 · 输入任一单位数值即可全单位联动换算
第一节

关于本工具

About

下载一个 2GB 的更新包,浏览器显示 15 MB/s,但实际要等多久?这个工具把带宽单位(bps、Kbps、Mbps)和文件大小(字节、KB、MB、GB)统一换算,直接输出预估下载时长。网络运维人员排查链路瓶颈、前端开发者评估资源加载时间都用得上。所有计算在浏览器内完成,不向服务器发送任何数据。

使用场景

网盘迁移前算带宽

公司网盘从阿里云迁到华为云,100GB 数据,IT 经理在下班前要决定走公网传输还是申请专线。用本工具输入文件大小 102400 MB 和公网出口 50 Mbps,算出理论耗时约 4.6 小时,但加上 TCP 开销和波动,实际要 6-7 小时,必须走专线。专线带宽 200 Mbps,耗时缩到 1.2 小时,当晚能跑完。

视频素材回传时间

户外拍摄 4K 素材,单段 45 分钟约 50 GB。用 4G 热点上传,上行 15 Mbps,估算需 7.4 小时,但现场只拍 3 小时,回传不完。用工具反推:要在 3 小时内传完 50 GB,上行需 ≥ 37 Mbps。团队改找有 5G 信号的咖啡馆,上行实测 80 Mbps,40 分钟传完。

监控录像存储规划

小区物业要装 16 路 200 万像素摄像头,H.265 编码每路码流约 2 Mbps,总带宽 32 Mbps。用工具算:NVR 上行需 32 Mbps,若用百兆交换机(理论 100 Mbps),实际可用约 60 Mbps,够用。但硬盘录像机写入速度需 ≥ 4 MB/s(32 Mbps ÷ 8),当前硬盘写入 80 MB/s 绰绰有余。

游戏更新下载决策

《赛博朋克 2077》更新 50 GB,家里宽带 200 Mbps,理论下载 50 GB 需 34 分钟。但 Steam 下载峰值只有 120 Mbps,实际约 56 分钟。用工具算:若开加速器能跑满 200 Mbps,可省 22 分钟。但加速器月费 30 元,为一次更新不值。决定睡前挂机,第二天玩。

直播推流码率评估

B 站直播推流,主播上行 30 Mbps,想推 1080p 60fps。用工具算:1080p 60fps 建议码率 6-8 Mbps,加上音频 128 Kbps,总推流 8.128 Mbps,上行余量 21.872 Mbps,足够。但若同时开摄像头(2 Mbps)和录屏(8 Mbps),总上行 18.128 Mbps,余量 11.872 Mbps,仍安全。

远程办公传输限时

设计师在家办公,要传 2GB 设计稿给甲方,甲方 18:00 下班,现在 17:00。家里上行 20 Mbps,理论 2 GB 需 13.6 分钟,17:14 传完。但家里有人在看 4K 视频(占用 25 Mbps),上行只剩 20 Mbps,实际需 13.6 分钟,17:14 传完,来得及。若用 4G 热点(上行 10 Mbps),则需 27 分钟,超时。

对比矩阵

维度本工具竞品 A(在线计算器)传统方法(手工估算)
隐私纯浏览器计算,数据不出本地需上传数值到服务器完全离线,无数据泄露风险
离线可用断网仍可正常使用断网无法访问始终可用(纸笔/心算)
速度即时反馈,输入即出结果依赖网络延迟,通常 1-3 秒依赖个人计算速度,易出错
单位覆盖bps / Kbps / Mbps / Gbps 全支持通常只支持 Mbps 和 Gbps需手动换算,易混淆单位
精度自动处理小数位和进制换算部分工具截断小数位人工四舍五入,误差较大
使用门槛打开即用,无学习成本需找到正确页面需掌握单位换算公式
第二节

使用指南

Getting Started

使用步骤

  1. 1在「数据量」输入框中填写文件大小(如 500 MB),单位下拉菜单可选 Byte/KB/MB/GB/TB
  2. 2在「带宽」输入框中填写网络速率(如 100 Mbps),单位下拉菜单可选 bps/Kbps/Mbps/Gbps
  3. 3点击「计算」按钮,结果区显示估算的下载时长(如 40 秒),同时列出换算后的 Kbps/Mbps 数值
  4. 4点击结果区任意数值(如 40 秒)可复制到剪贴板,底部「换算明细」展开显示计算过程与单位系数

输入输出示例

输入输出说明
100 Mbps100 Mbps = 100,000 Kbps = 100,000,000 bps 估算下载 1 GB 文件时间:约 80 秒常规:常见宽带速率,验证 Mbps 到 Kbps/bps 的换算,以及下载时长估算逻辑(1 GB = 8000 Mb,除以速率)。
1 bps1 bps = 0.001 Kbps = 0.000001 Mbps 估算下载 1 KB 文件时间:约 8000 秒边界:极小速率(1 bps),验证低值换算精度和下载时长是否合理(1 KB = 8000 bit)。
0 bps0 bps = 0 Kbps = 0 Mbps 估算下载任意文件时间:无穷大(无法计算)边界:零速率,验证工具是否正确处理除零或返回明确提示(无穷大/无法计算),避免崩溃或显示错误值。
999999999999999 Mbps999999999999999 Mbps = 999999999999999000 Kbps = 999999999999999000000 bps 估算下载 1 GB 文件时间:约 0.000000008 秒边界:极大速率(接近 1e15 Mbps),验证数值溢出处理(JavaScript Number 安全范围约 9e15,此值仍在范围内,但需确认 UI 显示无科学计数法截断)。
10.5 Mbps10.5 Mbps = 10,500 Kbps = 10,500,000 bps 估算下载 1 GB 文件时间:约 762 秒易错:带小数点的速率,验证浮点数换算精度(10.5 × 1000 = 10500,非整数)。
1 Kbps1 Kbps = 0.001 Mbps = 1,000 bps 估算下载 1 MB 文件时间:约 8000 秒常规:小单位(Kbps),验证 Kbps → Mbps 的换算(1/1000),以及文件大小单位(MB vs KB)的匹配。
1000 Mbps1000 Mbps = 1,000,000 Kbps = 1,000,000,000 bps 估算下载 1 GB 文件时间:约 8 秒常规:千兆速率,验证大数换算(1000 Mbps = 1 Gbps,注意工具是否显示 Gbps?当前输出只到 Mbps,需确认是否自动升级单位)。
-50 Mbps无效输入:速率不能为负数。请重新输入正数或零。易错:负数速率,验证工具是否给出明确的错误提示,而非静默处理或输出无意义结果。

常见错误对照

1.混淆 bit 与 Byte,数值差 8 倍

✗ 错误文件 10 MB,带宽 100 Mbps,算得下载时长 0.1 秒
✓ 修复10 MB = 80 Mb,80 Mb ÷ 100 Mbps = 0.8 秒

网络速率单位 Mbps 是兆比特每秒,而文件大小常用 MB(兆字节)。1 Byte = 8 bit,不换算直接除会差 8 倍。

2.K 与 k 混用,误把 Kbps 当 Mbps

✗ 错误输入 1000 Kbps,以为等于 1 Mbps
✓ 修复1000 Kbps = 1 Mbps(千进制)

Kbps 中的 K 是千(1000),Mbps 中的 M 是兆(1 000 000)。1000 Kbps 恰好等于 1 Mbps,但若误写为 1000 kbps(小写 k 仍表示千),结果正确,但若写成 1000 Kb 则可能被工具当作 1000 千比特。

3.输入纯数字不带单位,工具无法识别

✗ 错误在速率输入框只填 50
✓ 修复50 Mbps

工具依赖单位(bps/Kbps/Mbps)来区分量级。纯数字会被视为无单位,可能按默认单位处理或报错。

4.文件大小用 MB 但带宽用 Mbps,忘记换算

✗ 错误文件 500 MB,带宽 100 Mbps,直接 500 ÷ 100 = 5 秒
✓ 修复500 MB = 4000 Mb,4000 ÷ 100 = 40 秒

这是最常见的错误:MB 和 Mb 差 8 倍。500 MB 实际是 4000 Mb,除以 100 Mbps 得 40 秒而非 5 秒。

5.误以为 Mbps 是 MB/s

✗ 错误100 Mbps 带宽,认为下载速度 100 MB/s
✓ 修复100 Mbps ≈ 12.5 MB/s(除以 8)

运营商宣传的 100M 宽带是 100 Mbps,实际下载速度约 12.5 MB/s。直接当 MB/s 用会导致时长估算严重偏小。

6.把 Gbps 当 GB/s 用

✗ 错误10 Gbps 网络,算 10 GB 文件下载需 1 秒
✓ 修复10 Gbps = 1.25 GB/s,10 GB ÷ 1.25 = 8 秒

Gbps 是千兆比特每秒,GB/s 是千兆字节每秒,同样差 8 倍。10 Gbps 实际约 1.25 GB/s。

7.输入负值或零,工具无法计算

✗ 错误速率填 -10 Mbps 或文件大小填 0
✓ 修复速率和文件大小都应为正数

负速率或零大小在物理上无意义,工具会返回错误或无穷大结果。

8.混淆十进制与二进制前缀(KB vs KiB)

✗ 错误文件 1 KB = 1024 字节,带宽 1 Kbps = 1000 bps,直接混算
✓ 修复文件大小用 KB(1024 字节)时,先统一为 bit 再算

网络速率严格用十进制(1 Kbps = 1000 bps),而文件大小常用二进制(1 KB = 1024 字节)。混用会导致微小误差,大文件时累积明显。

第三节

工作原理

How It Works

核心公式

T = S / (R × 1000)

变量说明

  • T下载时长,单位秒
  • S文件大小,单位MB
  • R传输速率,单位Mbps

示例

下载 500 MB 文件,网速 100 Mbps:T = 500 / (100 × 1000) = 500 / 100000 = 0.005 秒?实际需注意单位统一:R 为 Mbps 时,1 Mbps = 0.125 MB/s,故 T = S / (R × 0.125) = 500 / (100 × 0.125) = 500 / 12.5 = 40 秒。

输入数值bps / Kbps / Mbps单位归一化统一转 bps时长计算文件大小 ÷ 速率输出时长秒 / 分钟 / 小时单位换算bps → 易读单位展示结果速率 / 时长 / 单位
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

5 种主流语言实现,复制即用:

import math def estimate_download_time(file_size_bytes: float, speed_mbps: float) -> float: """估算下载时长(秒),速度单位 Mbps""" if speed_mbps <= 0: raise ValueError("speed_mbps 必须大于 0") # 1 Mbps = 1,000,000 bps;文件大小需从字节转为比特 speed_bps = speed_mbps * 1_000_000 file_size_bits = file_size_bytes * 8 return file_size_bits / speed_bps # 例:500MB 文件,100Mbps 带宽 seconds = estimate_download_time(500 * 1024 * 1024, 100) print(f"{seconds:.1f} 秒") # 输出: 41.9 秒
/** * 估算下载时长(秒) * @param {number} fileSizeBytes - 文件大小(字节) * @param {number} speedMbps - 带宽(Mbps) * @returns {number} 下载时长(秒) */ function estimateDownloadTime(fileSizeBytes, speedMbps) { if (speedMbps <= 0) throw new Error('speedMbps must be > 0'); const speedBps = speedMbps * 1_000_000; // Mbps → bps const fileSizeBits = fileSizeBytes * 8; // 字节 → 比特 return fileSizeBits / speedBps; } // 例:2GB 文件,50Mbps 带宽 const seconds = estimateDownloadTime(2 * 1024 * 1024 * 1024, 50); console.log(`${seconds.toFixed(1)} 秒`); // 输出: 343.6 秒
package main import ( "fmt" "math" ) // EstimateDownloadTime 估算下载时长(秒) // fileSizeBytes: 文件大小(字节), speedMbps: 带宽(Mbps) func EstimateDownloadTime(fileSizeBytes, speedMbps float64) (float64, error) { if speedMbps <= 0 { return 0, fmt.Errorf("speedMbps must be > 0") } speedBps := speedMbps * 1_000_000 // Mbps → bps fileSizeBits := fileSizeBytes * 8 // 字节 → 比特 return fileSizeBits / speedBps, nil } func main() { // 例:1.5GB 文件,200Mbps 带宽 seconds, _ := EstimateDownloadTime(1.5*1024*1024*1024, 200) fmt.Printf("%.1f 秒\n", math.Round(seconds*10)/10) // 输出: 64.4 秒 }
#!/bin/bash # 估算下载时长(秒),需传入文件大小(字节)和带宽(Mbps) # 用法: ./estimate.sh 1073741824 100 (1GB 文件,100Mbps) file_size_bytes=$1 speed_mbps=$2 if [[ -z "$file_size_bytes" || -z "$speed_mbps" || "$speed_mbps" -le 0 ]]; then echo "用法: $0 <文件大小(字节)> <带宽(Mbps)>" exit 1 fi # 计算:文件大小(比特) / 带宽(bps) file_size_bits=$(( file_size_bytes * 8 )) speed_bps=$(echo "$speed_mbps * 1000000" | bc) seconds=$(echo "scale=2; $file_size_bits / $speed_bps" | bc) echo "${seconds} 秒" # 例: ./estimate.sh 1073741824 100 → 85.89 秒
/// 估算下载时长(秒) /// file_size_bytes: 文件大小(字节), speed_mbps: 带宽(Mbps) pub fn estimate_download_time(file_size_bytes: f64, speed_mbps: f64) -> Result<f64, &'static str> { if speed_mbps <= 0.0 { return Err("speed_mbps must be > 0"); } let speed_bps = speed_mbps * 1_000_000.0; // Mbps → bps let file_size_bits = file_size_bytes * 8.0; // 字节 → 比特 Ok(file_size_bits / speed_bps) } fn main() { // 例:300MB 文件,75Mbps 带宽 match estimate_download_time(300.0 * 1024.0 * 1024.0, 75.0) { Ok(seconds) => println!("{:.1} 秒", seconds), // 输出: 33.6 秒 Err(e) => eprintln!("错误: {}", e), } }
第五节

常见问题

Q & A
这工具算下载时间准不准啊,跟迅雷里显示的剩余时间差好多?

这个工具算的是理论最小值,公式是 文件大小 ÷ 带宽,不考虑网络抖动、服务器限速、Wi-Fi 丢包重传、同时下载任务数等因素。迅雷显示的剩余时间是基于实时下载速度的加权平均,更接近实际。所以如果工具算出来 10 秒,实际可能 30 秒甚至更久,属于正常,它帮你判断的是‘理想情况下最快能多快’,不是预估完成时间。

我只有上传速度,能算下载时长吗?

不能。上行带宽和下行带宽通常是独立的(尤其家庭宽带,下行大、上行小),用上传速度算下载时长没有意义。这个工具只接受下载速度(bps/Kbps/Mbps)作为输入。如果你测速软件只给了上传速度,需要重新测一次下行速度,或者找能分别显示上下行的测速工具(如 Speedtest.net 的结果页面会分开列)。

文件大小单位怎么填?我的是 GB,它只有 MB 和 KB?

工具输入框里文件大小单位下拉有 B、KB、MB、GB、TB,你直接选 GB 就行。如果下拉里没看到,可能是页面没加载完整或浏览器缩放问题,试着刷新或缩小页面看看。如果实在没有,可以手动换算:1 GB = 1024 MB,填 MB 数然后单位选 MB 也能算。

为什么我输入 100Mbps 带宽和 1GB 文件,算出来 80 秒,但实际下载要 5 分钟?

原因至少有四个:1)运营商给的 100Mbps 是理论最大,实际受线路质量、高峰期共享、光猫性能影响,跑满 80% 就算不错;2)下载文件的服务端有限速,比如百度网盘非会员经常被限制到 100KB/s 以下;3)工具算的是连续传输,但实际 HTTP 下载有握手、请求队列、TCP 慢启动开销;4)你同时在看视频或别的设备在下载。这个工具提供的是‘天花板值’,帮你判断当前带宽是否被跑满。

这个工具是在线算还是下载到本地算?会上传我的文件吗?

纯浏览器端计算,不涉及任何文件上传。工具实现方式是 FE(前端),所有换算逻辑在 JavaScript 里完成,输入的数字不会离开你的设备。文件大小和带宽数字只是你手动填进去的数值,不是通过上传文件来读取的。断网也能用,只要页面已经加载过。

Kbps 和 KB/s 到底有什么区别?我测速软件显示的是 KB/s,工具只能填 Kbps?

Kbps 是千比特每秒,KB/s 是千字节每秒,1 字节 = 8 比特,所以 1 KB/s = 8 Kbps。运营商和测速软件(如 Speedtest)通常显示 Mbps(兆比特每秒),而迅雷、浏览器下载管理器显示的是 MB/s(兆字节每秒)。如果测速软件给你 12.5 MB/s,对应带宽是 100 Mbps。本工具输入框默认是 bps 系列单位,你可以在下拉里选 Mbps 或 Kbps,不用自己除以 8,选对单位填数字就行。

我算出来 0 秒,是不是工具坏了?

不是坏了。出现 0 秒通常是你填的文件大小太小或带宽太大,比如文件大小填了 1 KB、带宽填了 1000 Mbps,计算结果是 0.008 秒,工具只显示整数秒时四舍五入成了 0。可以试试把文件大小单位换成 MB 或 GB,或者看结果区有没有显示‘< 1 秒’的提示。如果确实有小数位显示,留意结果数字后面有没有小数点和单位。

这个工具跟百度搜出来的在线计算器有啥区别?

大部分在线计算器只做纯数学换算(比如 100 Mbps ÷ 8 = 12.5 MB/s),不结合文件大小算时长。本工具把两步合并了:你填带宽和文件大小,直接出估算时长。另外,本工具纯前端、无广告弹窗、不要求注册,打开即用。不过功能上本质都是理想模型,和那些计算器一样都不考虑网络波动,这一点没有区别。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭