一些计算机的基本常识

经常我们使用电脑、手机或者其他的一些电子设备时,会听到这个手机存储 64G 的、32G 的,那个硬盘有 2T,这个网速 100M 的,这类的话,但是这些是个啥?为什么这么叫?意味着啥?

这些其实都是一些数字信息的单位,标志着存储设备能够存储多少的数字信息。

bit 与 byte

byte 是数字信息的基本单位,中文一般叫字节。1 byte 是形容一个完整字符的长度。假如有一篇全英文文章,文章存在设备里边就是数字信息,那么这个文章有多长,我们可以说有多少个字,但是对于数字信息来讲,我们说它占用了多少 byte。一般来讲一个英文字母占用 1 byte,一个空格和一个基本的标点符号也一样占用 1 byte。中文或者其他文字就另当别论了,因为这里会涉及到字符编码的问题,会导致单个字的长度更长一些。

bit 是计算信息和数字通信的基本单位,中文一般叫比特或者字位。我们都知道计算机的存储设备只能记录二进制的数据,所以要存数据到设备里只能将数据转化成二进制再存进去,转成了二进制无非就是使用 0 和 1 来表示,比如 1 转成二进制就是 00000001,那么这样每一个 0 或者 1 就是 1 bit,这个要存进去就要占用 8 个基础元器件,也就是 8 bits。因为不同时期的计算机对于用几个 bit 来表示一个 byte 是不同的,所以 bit 是不能用来表示数字信息长度的,它只能是计算信息和数字通信的基本单位。

那么用几个 bit 来表示一个字符,历史上经历了几次演变:

  • 最初的计算机普遍采用 4 位 BCD 编码,即 1 Byte = 4 bits。BCD 编码表示数字还可以,但表示字母或符号很不好用。
  • 后来演变出 6 位 BCDIC 编码7 位 ASCII 编码(至今仍广泛使用),即 1 Byte = 6 bits 或 7 bits。
  • 1964 年 IBM 推出大型机 System/360,使用 8 位 EBCDIC 编码,涵盖了数字、大小写字母和大部分常用符号,同时兼容 6 位 BCDIC 编码。System/360 非常成功,奠定了字符存储单位采用 8 位长度的基础。随着技术发展和设备标准化,1 Byte = 8 bits 被广泛使用于硬件和软件中,沿用至今。

国际单位制(SI)

全称 International System of Units,简称 SI。在 byte 的基础上标准化了更大的单位,进率为 1000

单位简称大小
KilobyteKB1,000 B
MegabyteMB1,000 KB
GigabyteGB1,000 MB
TerabyteTB1,000 GB
PetabytePB1,000 TB
ExabyteEB1,000 PB
ZettabyteZB1,000 EB
YottabyteYB1,000 ZB

bit 对应的单位(Kbit、Mbit、Gbit……)进率同样是 1000。

国际电工委员会单位(IEC)

制定这个标准的组织全称 International Electrotechnical Commission,简称 IEC,1998 年推出的标准化单位,进率为 1024(即 2¹⁰)

单位简称大小
KibibyteKiB1,024 B
MebibyteMiB1,024 KiB
GibibyteGiB1,024 MiB
TebibyteTiB1,024 GiB
PebibytePiB1,024 TiB
ExbibyteEiB1,024 PiB
ZebibyteZiB1,024 EiB
YobibyteYiB1,024 ZiB

由于电脑之间的存储和传递依据二进制,使用 2¹⁰ 作为进率更加方便,所以 IEC 单位在软件上被广泛使用,很多人也习惯把它简称为 KB、MB、GB……

但硬件厂商仍遵守 SI 标准。比如你买了一块 1 TB 的硬盘,插上电脑后发现容量少了不少,原因就在于此:硬盘厂商按 SI 标准标注,1 TB = 1,000,000,000,000 Bytes;而操作系统按 IEC 标准显示,同样的字节数换算下来只有:

1,000,000,000,000 ÷ 1024 ÷ 1024 ÷ 1024 ÷ 1024 0.909 TiB

bps 与 Mbps

这两个都是网络传输的速度单位。bps 是每秒传输的 bit,Mbps 是每秒传输的 Mbit。

我们说的 80M 宽带,实际就是 80 Mbps,即每秒传输 80 Mbit 的数据。占满所有带宽的情况下,理论上每秒可以传输 10 MB 的文件(80 Mbit ÷ 8 = 10 MB)。当然这是理论值,实际往往达不到。

另外值得一提的是上行和下行网络,相当于上传速度和下载速度,通常是不对等的。

32 位与 64 位 CPU

32 位 CPU 是指这个 CPU 有 32 根地址线,这些地址线决定其寻址范围为 0 到 2³²。内存是以 Byte 为基本单位的快速存储设备,所以 32 位 CPU 理论上支持的最大内存为 2³² Bytes,也就是 4 GB

64 位 CPU 有 64 根地址线,理论上可以支持 2⁶⁴ Bytes 的内存,也就是 4 GB 再乘以 2³²,一个非常大的数字。此外,64 位 CPU 和 32 位 CPU 在指令集上也有不同。

32 位与 64 位操作系统

32 位操作系统安装在 32 位 CPU 的机器上没有问题,64 位 CPU 也可以通过只使用 32 根地址线来兼容 32 位操作系统。但 32 位操作系统由于只能寻址 32 位,最大内存支持也就是 4 GB。

现在内存超过 4 GB 是很平常的事情,加上 64 位操作系统在指令和运算速度方面都有很多优势,所以 Windows 和各大软件厂商都在积极发展 64 位操作系统和对应的软件。不过 64 位操作系统需要 CPU 和主板等硬件的支持,CPU 必须是 64 位的。