01
各单位名称及换算
由图可见,数据单位间是1024的关系1kb等于多少字节,而速率单位间是1000的关系。
1bps就是每秒钟传输1bit的数据量(ps是per second的意思),所以1bps=1bit/s,bit通常可以简写为小写的b,所以1bps=1b/s。
同理可得,1Kbps=1Kbit/s=1Kb/s首码项目,1Mbps=1Mbit/s=1Mb/s。
8bit=1Byte,字节通常可以简写为大写的B,因此1MB指的是1MByte(1兆字节),而1Mb指的是1Mbit(1兆比特)。两者是不相等的。小写b代表bit,大写B代表Byte,不能混用!
02
如果我们家是1兆宽带1kb等于多少字节,是指传输速率(带宽)是1Mbps,那么下载文件的速度可以达到多少呢?
1Mbps = 1Mbit/s = (1/8)MByte/s = 0.125MByte/s = 0.125MB/s = (0.125×1024)KB/s =128KB/s。
这样就得到了我们平常所见的下载速度了。
也可以试试这么换算:1Mbps = 1000Kbps = 1000Kbit/s = (1000/8)KByte/s =125KB/s。
为什么换算结果出现了差异?
03
出现这两种结果是因为词头混淆造成的,因为传输速率中的词头K和数据存储中的K代表的进制是不一样的,我们在换算中进行了混淆。可以在词头符号后面加上i表示二进制的词头。
在词头符号后加上i,因此数据单位应该写作KiB、MiB、GiB,这样就能准确表示各单位间其实是二进制关系,只是人们在使用过程中往往不写i,从而造成了混淆。速率单位间本来就是十进制关系,故仍然写作Mbps、Kbps。
即1Ki=2^10=1024,而1K=10^3=1000
同理1Mi=1024Ki,而1M=1000K
04
我们重新看看前面的计算:
①1Mbps =1Mb/s = (1/8)MiB/s
1Mbps = 1000Kbps =1000Kb/s = (1000/8)KiB/s
在这里已经出现了错误,因为在换算中我们悄悄地把十进制词头M(K)变为二进制词头Mi(Ki)了。
为了避免词头转换出现问题,应该这样计算才正确:
②1Mbps = 1000000bps = 1000000b/s = (1000000÷8)B/s = 125000B/s = (125000÷1024)KiB/s =122.07KiB/s
而人们往往认为的1Mbps=128KB/s,是误认为数据单位和速率单位都是二进制词头造成的,如果是这样,准确地表述应该是:
③1Mibps = 1Mibit/s = (1/8)MiB/s = 0.125MiB/s = (0.125×1024)KiB/s =128KiB/s
1Mibps = 1024Kibps = 1024Kib/s = (1024/8)KiB/s =128KiB/s
那如果假设数据单位和速率单位都是十进制词头呢?
④1Mbps = 1Mb/s=(1/8)MB/s = 0.125MB/s = (0.125×1000)KB/s =125KB/s
1Mbps = 1000Kbps = 1000Kb/s = (1000/8)KB/s =125KB/s
可见准确的区分二进制词头(Ki、Mi、Gi)和十进制词头(K、M、G)是很有必要的。最后说一下大写K和小写k一般是等效的。
05
学完上述内容,你是否对三级网络技术中的数据单位有了更深刻的理解呢?
参考资料:
如有错误,欢迎指正。
