https://yq.aliyun.com/articles/44480

位和字节及进制关系,是最基本的计算机基础知识,但实际使用中,是否真的理解清楚了?

##
比特和字节

Bit,比特,也叫二进制位,是信息的最小单位。一个比特可以理解为一个开关量,0就是关,1就是开。

Byte,字节,由8个Bit组成。它通常用作计算机信息计量单位。字节在一些规范中称作Octet。

Bit简写为b,Byte简写为B。

##
字节的进制


字节一般以1024(2^10)为进制,目前常用的进制如下。









1
2
3
4
5
6
7
8
9
10
11
12



1B(byte字节)
1KB(Kilobyte千) = 2^10 B = 1024 B
1MB(Megabyte兆) = 2^10 KB = 1024 KB = 2^20 B
1GB(Gigabyte吉) = 2^10 MB = 1024 MB = 2^30 B
1TB(Trillionbyte太) = 2^10 GB = 1024 GB = 2^40 B
1PB(Petabyte拍) = 2^10 TB = 1024 TB = 2^50 B
1EB(Exabyte艾) = 2^10 PB = 1024 PB = 2^60 B
1ZB(Zettabyte泽) = 2^10 EB = 1024 EB = 2^70 B
1YB(YottaByte尧) = 2^10 ZB = 1024 ZB = 2^80 B
1BB(Brontobyte) = 2^10 YB = 1024 YB = 2^90 B
1NB(NonaByte) = 2^10 BB = 1024 BB = 2^100 B
1DB(DoggaByte) = 2^10 NB = 1024 NB = 2^110 B

 

(PB还听说过,PB以上居然还有那么多单位?)

##
容易混淆的情景

**情景1** 看各种协议时,要看清楚是比特还是字节

举个栗子:以太帧格式与IPv4包格式。

[![01.png](https://raw.githubusercontent.com/higoge/image/master/basic01/01.png)](https://raw.githubusercontent.com/higoge/image/master/basic01/01.png)

[![02.png](https://raw.githubusercontent.com/higoge/image/master/basic01/02.png)](https://raw.githubusercontent.com/higoge/image/master/basic01/02.png)

以太帧格式直接用字节(octet)进行展示,而IP包则采用比特表进行展示。实际读文档的过程中,一定要看仔细是比特还是字节。

**情况2** 硬盘容量

涉及到硬盘、文件等存储类的信息,都以字节为单位。

举个栗子:买了2T的硬盘,为毛放到计算机上少了那么多?

因为硬盘的进制是1000,2TB的硬盘,实际是2000GB,以此类推。计算机统计的进制是采用1024。

所以,2TB实际容量是2*1000^4/1024^4,约为1862G。(这一换算直接少了140G啊,黑心的硬盘商!)

[![03.png](https://raw.githubusercontent.com/higoge/image/master/basic01/03.png)](https://raw.githubusercontent.com/higoge/image/master/basic01/03.png)

**情况3** 网络带宽

网络带宽统计的是比特,所以也叫比特率,单位表示一般用Mbps,Gbps。其进制也不是1024,而是1000。即1Kbps=1000bps 1Mbps=1000Kbps 1Gbps=1000Mbps,以此类推。

举个栗子:家里面宽带是4兆的,最高的下载速度能达到多少?

答:因为网络带宽统计的是比特,而下载统计的是字节,所以换算时有8的除法。即4Mbps/8=0.5MBps=500KBps。所以下载速度最高超过500K。

从最早的下载软件网络蚂蚁(NetAnt),到后来的FlashGet,迅雷等,都采用的Bps为下载单位,因为下载的是文件,使用用存储单位。

[![04.png](https://raw.githubusercontent.com/higoge/image/master/basic01/04.png)](https://raw.githubusercontent.com/higoge/image/master/basic01/04.png)

下面这些各种流量监控软件,使用的单位是否合适?

[![05.png](https://raw.githubusercontent.com/higoge/image/master/basic01/05.png)](https://raw.githubusercontent.com/higoge/image/master/basic01/05.png)

作为一只产品汪,想说一句,这些流量监控球,至少在单位上,抄袭下载软件,而不用网络单位,真的是一件很没有逼格的事。

进制到底是1000,还是1024,耐心阅读下面这段英文。

The kilobyte is a multiple of the unit byte for digital information. Although the SI prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 (2^10) bytes or 1000 (10^3) bytes, dependent upon context, in the fields of computer science and information technology.

For example, when referring to data transfer rate and to disk storage space, “kilobyte” means 1000 (10^3) bytes. On the other hand, random-access memory capacity such as CPU cache measurements are always stated in multiples of 1024 (2^10) bytes, due to memory’s binary addressing.
有时候,为了不引起歧义,将1024进制用特殊方式单独表示,称为Mebibyte或Megabyte。









1
2
3
4



1KiB = 1024 Byte
1MiB = 1024 KiB = 1024^2 Byte
1GiB = 1024 MiB = 1048576 (1024^2)KiB
1TiB = 1024 GiB = 1073741824 (1024^3)KiB

 

##
总结

  1. 比特和字节,1000进制还是1024进制较为容易混淆。
  2. 在计算机科学领域采用1024进制,在信息技术领域,采用1000进制。
  3. 1024进制在单位上加字母i进行单独表示。

    ~~ EOF ~~