二进制、八进制和十六进制都是按位计值的数制。它们的区别在于基数不同。二进制是基数 22,八进制是基数 88,十六进制是基数 1616。一旦理解了这一点,这些符号看起来就不再神秘了。

在任何位置计数制中,每一位都是基数的幂。十进制中的位值是 111010100100,依此类推。二进制中的位值是 112244881616,依此类推。这个规则对所有进制都成立。

各种数制使用哪些符号

二进制只使用数字 0011

八进制使用数字 0077

十六进制使用 1616 个符号:0099,再加上 AAFF,分别表示数值 10101515

这意味着,一个十六进制位能承载的信息比一个二进制位更多,因为十六进制的每一位按 1616 的幂计数,而不是按 22 的幂计数。

核心直觉

一个数不会因为你用不同进制来写,就改变它本身的数值。改变的只是表示方式。

例如,十进制数 4545,无论写成二进制、八进制还是十六进制,表示的都是同一个量。不同进制就像是在用不同语言表达同一个数。

一个很有代表性的例子:把 4545 写成二进制、八进制和十六进制

先从十进制开始。

45=32+8+4+145 = 32 + 8 + 4 + 1

这些都是 22 的幂:

32=25,8=23,4=22,1=2032 = 2^5,\quad 8 = 2^3,\quad 4 = 2^2,\quad 1 = 2^0

所以,二进制形式在 252^5232^3222^2202^0 这些位上是 11

4510=101101245_{10} = 101101_2

现在利用二进制形式来得到八进制。因为 8=238 = 2^3,所以从右往左把二进制按每 33 位一组:

1011012=101 1012101101_2 = 101\ 101_2

每一组对应一个八进制数字:

1012=5,1012=5101_2 = 5,\quad 101_2 = 5

所以

4510=55845_{10} = 55_8

接着求十六进制。因为 16=2416 = 2^4,所以从右往左把二进制按每 44 位一组。不够时在左边补零:

1011012=0010 11012101101_2 = 0010\ 1101_2

然后把每一组分别转换:

00102=2,11012=13=D0010_2 = 2,\quad 1101_2 = 13 = D

所以

4510=2D1645_{10} = 2D_{16}

这三种形式表示的都是同一个数:

4510=1011012=558=2D1645_{10} = 101101_2 = 55_8 = 2D_{16}

常见错误

一个常见错误是忘记了进制会改变位值。字符串 101101 在二进制、八进制和十进制中,含义并不相同。

另一个错误是使用了该进制不允许出现的数字。例如,二进制数中不能出现 22,八进制数中不能出现 88

学生在把二进制转换成八进制或十六进制时,也常常分组错误。要从右边开始分组,如果一组不完整,就在左边补零。

这些数制在什么时候使用

二进制是数字系统的基础语言,因为开关天然只有两种状态。八进制和十六进制则是书写长二进制串的更紧凑方式。

你不需要学过计算机科学,也能理解这里的数学思想。这些数制依然很有价值,因为它们训练的是所有位置计数法背后的核心规则:数值取决于基数和所在的位置。

试着做一个类似的转换

试着把 581058_{10} 转换成二进制、八进制和十六进制。先把它写成 22 的幂之和,再对二进制数字分组,得到另外两种形式。

需要解题帮助?

上传你的问题,几秒钟内获得经过验证的分步解答。

打开 GPAI Solver →