No history yet

二进制与数字系统

数字系统:不仅仅是 0 到 9

我们每天都在使用数字,从购物到看时间。我们最熟悉的系统是十进制,也叫基数-10 系统。为什么叫基数-10?因为它使用了十个符号(0、1、2、3、4、5、6、7、8、9)来表示所有数字。每个数字的位置都有一个特定的值,这个值是 10 的幂。例如,数字 253 实际上是:

(2×102)+(5×101)+(3×100)(2 \times 10^2) + (5 \times 10^1) + (3 \times 10^0)

(2×100)+(5×10)+(3×1)(2 \times 100) + (5 \times 10) + (3 \times 1)

但计算机的思维方式不同。它们的世界由数十亿个微小的开关组成,每个开关只能处于“开”或“关”两种状态。为了代表这两种状态,计算机使用了一个只有两个符号的数字系统:0(关)和 1(开)。这就是二进制,也叫基数-2 系统。

二进制是所有数字技术的基础,从你的智能手机到复杂的超级计算机,一切都以 0 和 1 来运行。

在十进制与二进制间转换

将我们熟悉的十进制数转换成计算机能理解的二进制数,是一个简单的过程。最常用的方法是“除以 2 取余数”。

我们来试试把十进制数 29 转换成二进制。方法如下:

  1. 用 29 除以 2。
  2. 记下商和余数。
  3. 只要商不为 0,就继续用新的商除以 2。
  4. 最后,将所有余数从下往上倒序排列,就得到了二进制数。
Lesson image

反过来,从二进制转换到十进制同样简单。我们需要用到每个位置的值,即 2 的幂。我们以二进制数 11101 为例。从右边第一位开始,位置的值分别是 $2^0, 2^1, 2^2$, 依此类推。然后,将二进制数中每一位上的数字(0 或 1)与其对应的位置值相乘,最后将所有结果相加。

111012=(1×24)+(1×23)+(1×22)+(0×21)+(1×20)11101_2 = (1 \times 2^4) + (1 \times 2^3) + (1 \times 2^2) + (0 \times 2^1) + (1 \times 2^0)
=16+8+4+0+1=2910= 16 + 8 + 4 + 0 + 1 = 29_{10}

更紧凑的表达:十六进制

二进制数可能会变得非常长,不方便读写。想象一下 1111101011001110 这样的数字!为了解决这个问题,程序员经常使用十六进制,也叫基数-16 系统。

十六进制系统使用 16 个符号:数字 0-9 和字母 A-F(A 代表 10,B 代表 11,以此类推,直到 F 代表 15)。这种表示法更短、更易于管理。

十进制十六进制二进制
000000
110001
220010
330011
440100
550101
660110
770111
881000
991001
10A1010
11B1011
12C1100
13D1101
14E1110
15F1111

十六进制最大的优势在于它和二进制之间的转换非常简单。由于 $16 = 2^4$,每个十六进制数字都恰好可以表示四位二进制数。要将一个长的二进制数转换为十六进制,只需从右到左,每四位分为一组,然后将每组转换为对应的十六进制符号即可。

例如,我们来转换二进制数 11010110

  1. 把它分成两组四位数:11010110
  2. 从上表中查找,1101 对应十六进制的 D
  3. 0110 对应十六进制的 6

所以,11010110 在十六进制中就是 D6。是不是比处理一长串 0 和 1 简单多了?

这些数字系统不仅仅是理论知识,它们在计算机科学的每个角落都发挥着作用。无论是处理数据、定义颜色还是在内存中定位信息,二进制和十六进制都是程序员和工程师每天使用的基本工具。

准备好测试一下你对数字系统的理解了吗?

Quiz Questions 1/6

为什么计算机主要使用二进制系统?

Quiz Questions 2/6

将十进制数 29 转换为二进制的结果是什么?

理解这些不同的数字系统是掌握计算机工作原理的第一步。它们是计算机用来交流和处理信息的语言基础。