导航
将二进制的 101011 转换为十进制的步骤如下:
1 * 2 ^ 0 = 1;1 * 2 ^ 1 = 2;0 * 2 ^ 2 = 0;1 * 2 ^ 3 = 8;0 * 2 ^ 4 = 0;1 * 2 ^ 5 = 32;1 + 2 + 0 + 8 + 0 + 32 = 43,即(101011)B=(43)D。八进制就是逢 8 进 1 ,八进制数采用 0~7 这八数来表达一个数
将八进制的 (53)O 转换为十进制的步骤如下:
3 * 8 ^ 0 = 3;5 * 8 ^ 1 = 40;3 + 40 = 43;即 (53)O=(43)D。十六进制就是逢 16 进 1 ,十六进制的 16 个数为 0123456789ABCDEF。
将十六进制的 (2B)H 转换为十进制的步骤如下:
B x 16 ^ 0 = 11; (从 9 往后,A是10,B是11)2 x 16 ^ 1 = 32;11 + 32 = 43,即(2B)H=(43)D。除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
将十进制的 43 转换为二进制的步骤如下:

整数十进制转二进制已经知道了,再来看看小数是怎么转二进制的,小数部分的转换不同于整数部分,它采用的是乘 2 取整法 ,将十进制中的小数部分乘以 2 作为二进制的一位,然后继续取小数部分乘以 2 作为下一位,直到不存在小数为止。
以 8.625 转二进制作为例子:
8 % 2 →  商 4 余 04 % 2 → 商 2 余 02 % 2 → 商 1 余 01 % 2 → 商 0 余 10.625 * 2 → 1.25 取整 10.25 * 2 → 0.5 取整 00.5 * 2 → 1 取整 11000.101但并不是所有小数都可以用二进制表示,上边的 0.625 小数是一个特例,刚好通过乘 2 取整法的方式完整的转换成二进制。
接下来我们看看 0.1 的例子:
00.1 * 2 → 0.2 取整 00.2 * 2 → 0.4 取整 00.4 * 2 → 0.8 取整 00.8 * 2 → 1.6 取整 10.6 * 2 → 1.2 取整 10.2 * 2 → 0.4 取整 00.4 * 2 → 0.8 取整 00.8 * 2 → 1.6 取整 10.6 * 2 → 1.2 取整 10.2 * 2 → 0.4 取整 0可以发现, 0.1 的二进制表示是无限循环的。
由于计算机的资源是有限的,所以是没办法用二进制精确的表示 0.1,只能用「近似值」来表示,就是在有限的精度情况下,最大化接近 0.1 的二进制数,于是就会造成精度缺失的情况。
除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数。
将十进制的(796)D转换为八进制的步骤如下: