二进制转十进制,就是把一个以 22 为底的数改写成以 1010 为底的数。核心思路很简单:每个二进制位都表示是否要计入某个 22 的幂。位上是 11,就计入该位值;位上是 00,就跳过该位值。

例如,10112=11101011_2 = 11_{10},因为它包含 88,跳过 44,包含 22,也包含 11

二进制位值如何变成十进制

二进制是以 2 为底的计数系统,所以它的位值是 22 的幂,而不是 1010 的幂。从右到左,各位依次是:

20,  21,  22,  23,  2^0,\; 2^1,\; 2^2,\; 2^3,\; \dots

这意味着前几个位值分别是:

1,  2,  4,  8,  16,  1,\; 2,\; 4,\; 8,\; 16,\; \dots

如果某一位是 11,这个位值就要计入;如果某一位是 00,这个位值就不计入。

二进制转十进制背后的规则

对于一个二进制数 bnbn1b1b0b_n b_{n-1} \dots b_1 b_0,其中每个 bib_i 都是 0011,它对应的十进制值为

i=0nbi2i\sum_{i=0}^{n} b_i 2^i

你不一定非要用这个公式来做转换,但它能很清楚地说明这个思路:二进制本质上就是以 22 的幂为位值的计数方式。

例题:把 11001211001_2 转成十进制

从右边开始,对应的位值是 1,2,4,8,161, 2, 4, 8, 16

110012=116+18+04+02+1111001_2 = 1 \cdot 16 + 1 \cdot 8 + 0 \cdot 4 + 0 \cdot 2 + 1 \cdot 1

现在只保留那些对应数字为 11 的值:

110012=16+8+111001_2 = 16 + 8 + 1

所以它的十进制值是

110012=251011001_2 = 25_{10}

如果你想快速检查,可以从左到右把它读成:“一个 1616,一个 88,零个 44,零个 22,再加一个 11。”

为什么这种方法有效

在十进制中,数 407407 表示

4102+0101+71004 \cdot 10^2 + 0 \cdot 10^1 + 7 \cdot 10^0

二进制的原理完全一样,只是把底数换成了 22

110012=124+123+022+021+12011001_2 = 1 \cdot 2^4 + 1 \cdot 2^3 + 0 \cdot 2^2 + 0 \cdot 2^1 + 1 \cdot 2^0

结构是完全相同的,变化的只有底数。

二进制转十进制的常见错误

  1. 把位值当成 1010 的幂,而不是 22 的幂。二进制的位值应为 1,2,4,8,16,1, 2, 4, 8, 16, \dots
  2. 从左边开始数位,却不知道对应的指数。最稳妥的方法是从右边的 202^0 开始。
  3. 把像 10211021 这样的数当成二进制。有效的二进制数字只有 0011
  4. 忘记前导零不会改变数值。例如,001120011_211211_2 都等于 3103_{10}

二进制转十进制用在什么地方

凡是你需要理解计算机如何存储数值时,都会遇到二进制转十进制。它常见于计算机科学基础、数字电子技术、数据表示,以及权限、标志位、内存数值等基于位的场景中。

即使你从不直接接触硬件,理解二进制位值也会让各种进制系统不再那么神秘。

试着做一个类似的转换

1011012101101_2 转成十进制:先写出各位的位值,再只把与 11 对应的 22 的幂相加。养成这个习惯,可以避免大多数转换错误。

需要解题帮助?

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

打开 GPAI Solver →