计算机的 bit(比特)和Byte(字节)

我们来说说和数据有关的单位 bit 和 Byte。

在说这这个数据之前,大家应该都知道计算机实际上只能处理0和1。


计算机能够把0和1转换为电路中的信号来进行计算,这个其实就是计算机的本质。

单位定义

我们先对需要使用的单位进行一些定义。

bit(比特)

bit 就是计算机对数据存储和移动的最小单元,这个只有2个值,0和1。它的简写为小写字母“b”。

作为信息技术的最基本存储单元,因为比特实在太小了,所以大家生活中可能接触不到,在装宽带的时候被忽悠的就是这个单位。

Byte(字节)

Byte 是字节的英文写法。它的简写为大写字母“B”。

既然名字叫字节,那肯定跟字符有关系。英文字符通常是一个字节,也就是1B。中文字符因为字符集的问题通常会超过 2 个字节。

这是和中文字符有关的,因为中文字符编码的问题,我们是没有办法把所中文存储在一个字节中的。

所以对亚洲国家用的字符,比如我们以后可能会说到的 CJK,会占到 4 个字节。

转换关系

8 bit 等于 1 byte。

一个字节等于八位。

表达用途

因为 bit 这个单位实在是太小了,用在存储上并不是很好用。

所以我们大致上只需要了解: bit 用在数据通信上,存储上用的是 Byte。

简单来说,和通信有关的都是位,和存储有关的都是字节。

这是因为在数据传输中,交换机和硬件只负责把 0 或者 1 发送到目的地,所以使用位这个单位更好来表示数据传输。

为什么要了解 Bit 和 Byte

现在来说下为什么需要对 Bit 和 Byte 有些基本的了解。

其实我们主要是用来理解下计算机是如何对数据进行计算的。

比如说,在 Java 程序中,我们都会知道有一个数据类型,其实所有的计算机语言都会有数据类型的。

我们拿最常用的 Int 来举例,如果你不知道 Java 的 Int 是多少位的话,你可以随意搜索下应该得到的答案是 Java Int 是 32 位的。

当我们在程序中对 Int 进行计算的时候,就涉及到你需要进行计算的 2 个数字,如何通过位的移动来获得结果,因为我们知道计算机只能处理 Bit 数据。

举例来说,假设我们希望让计算机告诉我们 12 +12 等于多少,首先我们就需要知道 12 在计算机内是怎么存储的,对于数字 12 的整数类型,程序会用一什么 0 和 1 的序列进行存储。

在做加法的时候,程序会通过怎么样的位移动来得到具体的值。

这个过程实际上就是计算机 CPU 处理的过程。

因为我们在程序计算的时候,这部分对大部分程序开发都是透明的,所以我们实际上只需要了解 Bit 和 Byte 之间的一些关系就好了。

因为了解这些关系,能够有助于我们在以后看到一些文献资料的时候了解存储和计算过程,但因实际用得并不多,大部分情况也不会要求你主动去进行位移动计算,因为这是计算机做的事情。