什么是二进制?

17 Mar 2025 | 5 分钟阅读

戈特弗里德·莱布尼茨发明了二进制数,它是一种基数为 2 的数字系统,仅包含两个数字或数码:0(零)和 1(一)。这种数字系统是所有二进制代码的基础,用于编写数字数据,例如我们每天使用的计算机处理器指令。

任何只有两种可能状态的数字编码/解码系统也称为二进制编码/解码系统。在数字数据内存、处理、存储和通信中,0 和 1 通常分别被称为“低”和“高”。

在计算机中,最小的数据单位是位(bit,binary digit 的缩写);每个位包含单个值 1 或 0。扩展名为“.bin”的二进制文件通常用于标识可执行(即时运行)的程序。二进制一词也常被程序员用来指代可执行文件。

二进制如何工作?

在二进制中,0 和 1 分别表示“关”和“开”。在 晶体管 中,“0”表示没有电流流过,而“1”表示有电流流过。数字在计算设备内部以这种方式物理表示,从而可以进行计算。在本页下方关于如何读取二进制数的章节中,我们将更详细地介绍这个概念。

为什么计算机使用二进制?

由于以下原因,二进制仍然是主要的计算机语言,并且仍在电子和计算机硬件中使用。

  • 它是一个有吸引力且设计简洁的系统。
  • 如果电信号是关闭(假)或打开(真),二进制的 0 和 1 方法可以快速检测。
  • 只有两个状态且相距较远的电信号对电气干扰不敏感。
  • 磁性介质的正极和负极可以直接转换为二进制。
  • 通过二进制可以最有效地控制逻辑电路。

如何读取二进制数

下面的图示显示了二进制数 01010101。当您查看这八个位置时,每一列都代表 2 的指数幂,指数值递增一。您需要从右到左遍历图表,并将每一列的值加到前一列以获得此示例的总和:(1+4+16+64) = 85。我们不计算值为零(0)的位,因为它们是“关闭/关闭”的,正如您所见。

指数2726252423222120
1286432168421
开/关01010101

下一个示例是下面的二进制值 01101000,这是 8 位数的最大值 104。同样,从右到左读取,我们得到 8+32+64 = 104。

1286432168421
开/关01101000

另一个示例是二进制值 11111111,这是 8 位数的最大值 255。当您从右到左开始读取时,将得到 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255

1286432168421
开/关11111111

注意:通常,计算机计数从“0”而不是“1”开始。因此,计算所有位等于 255,但从 0 开始等于 256。

字节(byte)被定义为八位,由字节中的位数决定。当您将前一个示例(01101000)的总和为“104”的二进制代码翻译成 ASCII 时,您将得到一个小写字母“h”。要拼写单词“hi”,您需要包含字母 I 的二进制数,即 01101001。通过将这两个代码组合起来,我们得到 0110100001101001,即 104 和 105,它们分别代表“hi”。

如何在二进制中相加

二进制数相加与十进制数相加非常相似。例如,如果我们有二进制数 01101011 (107) 并想加上 10000111 (135),我们会这样做:

+01101011
10000111

我们将从右侧开始,将 1+1 相加得到“2”。由于二进制中没有数字 2,我们将使用二进制值“10”并将“1”进位到下一列。

0

现在我们将前一列的“1”加到下一列的“3”上。而且,由于没有数字“3”存在于二进制中,我们使用“11”,它在二进制中代表 3,写下 1 并将 1 进位到下一列。

10

然后,我们将进位的“1”与 **1+0+1** 相加,得到“10”,这表示二进制中的 2。

010

通过对所有八位重复此过程,我们得到结果 11110010 (242)。

11110010

什么是左移和右移?

将二进制数的每一位向左移动(移动)称为左移,它用于将二进制值翻倍或乘以二。例如,二进制数“00111110”等于 62,当位向左移时,它变成“01111100”,等于 124。另一个例子是当二进制数“00000011”等于 3 并左移到“00000110”时,它等于 6。

右移与左移相同,只是为了将数字除以二,位向右移动。当执行右移操作时,二进制数“00001010”等于 10,变为“00000101”,等于 5。

什么是“0b”前缀?

为了避免误解,在书写二进制数时,可以在其前面加上“0b”(零和 b)前缀。例如,在二进制中,0b0100 表示“0100”。由于这个前缀,读者可以知道这而不是十进制的“100”。

二进制幽默

下图是关于一些二进制喜剧(笑话)的例子,来自许多极客 T 恤上的流行语。“世界上只有两类人:一类是理解二进制的人,另一类是不理解的人”,这句话真正说出了那些能读懂二进制的人。在二进制系统中,十是二,不是十。

What is Binary

二进制一词也可以指代以下内容:

  • 在 FTP 会话中,binary 是一个命令,用于将文件传输模式更改为二进制。
  • 当用作名词时,“binary”一词也可以指代可执行文件。例如,“找到名为 program.exe 的二进制文件并双击它。”