毁三观,你绝对搞不清楚的进制单位转换, bit Byte GB GiB 1000 1024 Gbps GBps GB/s Gpps

2016-07-29 10:39:16 +08:00
 tntsec

看完本篇文章,你便可以准确理解下面的问题。(如果你发现文章的错误,请及时与我联系修改,传播正确的知识是每个人的责任)

10M 带宽代表什么?
为什么 1T 硬盘不够 1T ?
为什么在苹果系统里硬盘比在 windows 下大?
一个 1KB 的文件到底是多大?
GiB 是什么玩意?
GBps 和 Gbps 什么关系?
Gpps 又他么是什么玩意

bit

是计算机中最小的单位,其空间只能存储 0 或者 1

Byte

字节 计算机中最小的存储单位 在 ascii 码中, 01000001 代表字母 A 其大小为 8bit=1Byte 在中文编码GB2312-1980码中,规定 1 个中文字符占用两个字节即 2Byte 世界上有多少文字?能不能全部统一? Unicode 被提出,而 UTF-8 已经成了最通用的编码方式 为什么我们的网页可以同时显示中英日韩不乱码?这得益于 utf8 的强兼容性 为了实现 utf8 的强兼容性, UTF-8 最多可用到 6 个字节存储。

GB KB MB GiB KiB MiB 1000 1024

在我们的学习中,似乎 1GB=1024MB已经成为了“标准” 但实际上国际标准规定中GiB才是标准

然而,并没有任何人遵守。。

在硬盘制作行业 ssd 存储芯片分类更详细,并且有用于磨损的空间,因此暂时不谈。

以 1T 硬盘机械硬盘来计算 1T 实际容量为 1x1000x1000x1000x1000/1024/1024/1024=931GB 空间 是硬盘缩水了吗?

这就要说道标准了 现行标准有两套 1KB = 1,000 Byte 1MB = 1,000 KB 1GB = 1,000,000 KB 1TB = 1,000,000,000 KB 1KiB = 1,024Byte 1MiB = 1,024KiB 1GiB = 1,024MiB = 1,048,576 KiB 1TiB = 1,024GiB = 1,073,741,824 KiB

在操作系统中 只有苹果使用了 GB ,并且命名为 GB 在微软操作系统中,虽然同为 GB ,但是实际单位是 GiB 。微软向来自称一派,比如为什么第一个分区叫 C 盘?因为微软任性。 很不幸的, linux 把这点学去了,安卓又把 linux 的学去了。 微软的标准反而成了标准。 其结果就是 1T 硬盘在 windows 中显示为 931G 在苹果系统中显示为 1T=1000G

Mbps MBps MB/s

要理解他们,首先你要知道他们是代表什么 Mbps 1M=百万数据 单位 b 比特 每 p 秒 s MBps 1M=百万数据 单位 B 字节 每 p 秒 s MB/s 1M=百万数据 单位 B 字节 /s 每秒 也就是说 MBps 和 MB/s 其实是一个单位 而Mbps转化MBps之所以除以 8 ,是因为比特和字节的转化, M 仅仅代表百万

我们宽带的 10M 最大速度也正是 1.25MB/s ,而我们的速度之所以能超过 1.25MB/s ,是因为宽带公司会空余一定的带宽用作网络传输损耗。 网络传输一定小于网络带宽,下载速度一定会小于网络传输。宽带公司为了较少麻烦,空余设置的的确比较大。 比如某不知名的长城宽带,其 50M 带宽下载速度都在 7M/s 左右。

Mpps

Mpps 这个单位其实很少见,基本上他只出现在两个地方 交换机路由器中,会明确注明 pps 在 ddos 攻击中,防火墙衡量标准中会有 bps 和 pps 两个标准。

Mpps M 百万 p 数据包 每 p 秒 s 以太网传输最小包长是 64 字节,千兆全双工以太网全速传输数据时 1000Mbps/((64B+8B+12B)x8bit)=1.488095pps 也就是 1.488Mpps

注意,这里的 M 指的是百万,而不是 MB 的容量,因此跟 1024 没关系。 为什么 64B 还要+8B+12B ?因为网络传输需要协议支持,传空数据包是不可能不存在的, 8 字节为前导符, 12 字节帧间隙,根据网络性能不同,帧间隙会更大。

好了,科普完毕,开头的问题你都懂了吗?

如果你发现文章的错误,请及时与我联系修改

8035 次点击
所在节点    程序员
48 条回复
honeycomb
2016-07-29 10:50:51 +08:00
常见的 Linux 对 10 为底的 mega , 2 为底的 mebi 的区分非常清楚
honeycomb
2016-07-29 10:52:01 +08:00
Mebi 这套是 iec 60027-2 规范的写法
lianz
2016-07-29 10:54:39 +08:00
你这篇科普写的很卖力,但是我想给你泼一盆冷水,你挑错科普主题了。

1. 普通人员完全不需要、也没兴趣去明白他们的区别。

2. 技术人员完全不用你科普,对搞技术的人来说,这是最初的入门阶段就已经搞清楚的基础问题了。
ferrum
2016-07-29 11:01:09 +08:00
「为什么第一个分区叫 C 盘?」因为 A 盘 和 B 盘已经被用了啊……而且微软也不是第一家这么做的公司。

https://www.wikiwand.com/en/Drive_letter_assignment
kevinhwang
2016-07-29 11:05:47 +08:00
搞底层的都懂,这是常识。默认情况下,通讯传输的 K 是 1000 ,存储的 K 是 1024 。
tntsec
2016-07-29 11:23:06 +08:00
@lianz 关注回复 慢慢你就发现 依然很多人搞不清楚
搞不清楚也不能说明什么问题
tntsec
2016-07-29 11:24:51 +08:00
@ferrum 这正是说明了任性,为什么要留着 AB 不用 又或者,为啥不用根形式要用 ABC
chztv
2016-07-29 11:25:23 +08:00
C 盘这个是有历史原因的,根本不是任性。 A 盘和 B 盘历史上是真实存在的。科普文章如此不靠谱。
hei1000
2016-07-29 11:26:20 +08:00
你真的确定我搞不清楚? 这种事请还是改为"很多人搞不清"比较好
tntsec
2016-07-29 11:30:45 +08:00
@chztv 能把因为有 AB 所以下一个肯定是 C 认定标准。这就是微软厉害的地方。即使系统盘默认是 D ,你也会说同样的话
tntsec
2016-07-29 11:31:30 +08:00
@hei1000 非运维行业真的知道 pps 到底是什么吗
samael
2016-07-29 11:33:46 +08:00
要说任性=>为什么键盘上 0 在 9 的右边, 数数不是从 0 开始数的吗? :doge
tntsec
2016-07-29 11:34:24 +08:00
@samael 这很任性!
RqPS6rhmP3Nyn3Tm
2016-07-29 11:34:41 +08:00
AB 都给软盘用了,硬盘第一个分区当然是 C 。
后来软盘淘汰了, AB 消失 C 上位。微软:怪我咯?
进制单位以 2 或 10 为底数源自国际单位制词头,规定的是 IEEE ,没有强制性连 IEEE 自己都不用
hei1000
2016-07-29 11:42:13 +08:00
@tntsec 你自己都说"Mpps 这个单位其实很少见,基本上他只出现在两个地方......", 99%的人都不需要知道吧
zhangfan
2016-07-29 11:45:22 +08:00
为啥厂商都以 1000 进制来虚标容量?
wujunze
2016-07-29 11:49:41 +08:00
王忘杰 233333
wmhx
2016-07-29 11:52:30 +08:00
第一个是 C 是因为兼容以前的软盘而空出来的 AB 而已, 你完全可以自己改 A 或 B, 这不叫任性
why1
2016-07-29 11:52:56 +08:00
主要是字母 b 大小写不分,省略字母 b
ryd994
2016-07-29 11:54:31 +08:00
@tntsec 你问大家 pps 是什么?那我问问你茴字有几种写法? Fick's first law 和 second law 有什么区别用在什么地方?
术业有专攻……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/295704

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX