进阶15 分钟未开始

进位制

核心概念

bb 进制:用 0,1,,b10,1,\dots,b-1bb 个数字,按"逢 bb 进一"记数。一个 bb 进制数

(dkdk1d1d0)b=dkbk+dk1bk1++d1b+d0.(\,d_k d_{k-1}\cdots d_1 d_0\,)_b = d_k b^k + d_{k-1}b^{k-1} + \cdots + d_1 b + d_0.

bb 进制 → 十进制:按位乘以 bb 的幂再相加(上式)。

十进制 → bb 进制:不断除以 bb 取余,余数逆序排列。

常见进制:二进制(b=2b=2)、八进制(b=8b=8)、十六进制(b=16b=16,用 AAFF 表示 10101515)。

直观理解 · 动手试试

进位制的本质是"用幂次打包数量"。十进制里 345=3×100+4×10+5345 = 3\times100 + 4\times10 + 5,每一位代表 1010 的某个幂;换成 bb 进制,只是把"打包的单位"从 1010 换成 bb

十进制转 bb 进制为什么是"除 bb 取余、逆序"?因为每除一次 bb,就剥下最低位的余数(个位),商继续往高位剥。最先剥下的是最低位,所以要倒着写。二进制尤其重要:它只有 0011,是计算机和许多组合问题(如子集计数、称重问题)的天然语言。

进位制

把十进制 13 化为 2 进制

13 ÷ 2 = 6 ······ 余 1
6 ÷ 2 = 3 ······ 余 0
3 ÷ 2 = 1 ······ 余 1
1 ÷ 2 = 0 ······ 余 1
余数逆序读出:13(10) = 1101(2)
13
2

不断除以 b 取余,商继续往下除;最后把余数从下往上(逆序)拼起来,就是 b 进制表示。

例题 1十进制转二进制

把十进制 1313 化为二进制。

查看解答步骤

答: 13 = (1101)₂

例题 2二进制转十进制

把二进制 (10110)2(10110)_2 化为十进制。

查看解答步骤

答: (10110)₂ = 22

即时练习

二进制 (1011)2(1011)_2 等于十进制几?

8+0+2+1=118+0+2+1 = 11

二进制 (10110)2(10110)_2 等于十进制几?

16+4+2=2216+4+2 = 22

十进制 1313 的二进制表示是(直接填这个由 0/1 组成的数)?

13=8+4+1=(1101)213 = 8+4+1 = (1101)_2,作为数填 11011101

八进制 (23)8(23)_8 等于十进制几?

2×8+3=192\times8 + 3 = 19

十进制转 bb 进制时,把每次除以 bb 的余数逆序排列即可。

最先得到的余数是最低位,所以余数要逆序读。

易错点

  • 余数顺序写正了。bb 取余得到的余数要逆序(从最后到最先)排列。
  • 某位数字超过 b1b-1 bb 进制每位只能是 00b1b-1,如二进制不会出现数字 22
  • 展开时幂次错位。 最右边是 b0b^0,从右往左幂次依次升高,别从左边开始数。

下一步

前置知识点
接下来学习