进制二:进制间的转换

本贴最后更新于 2146 天前,其中的信息可能已经时移世异

前言

今天讲进制间的转换,但是需要郑重声明的是:每一种进制本身就是完美的,根本不需要转换,但是我们有时可能需要在进制之间进行转换,所以记录一下。

进制间转换的方法

这种方法是以十进制作为桥梁进行转换的。把一个进制转成另一种进制的具体步骤如下:

  1. 把本进制数转换为十进制:将每一个位上的数按权展开后求和。
  2. 把得到的十进制数作为被除数,把需要转换成的目标进制的进制数作为除数,把商写在下方,把余数写在右边。
  3. 如果下方的商不为 0,则把商作为被除数,需要转换成的目标进制的进制数作为除数,继续求解,把商写在下方,把余数写在右边。
  4. 重复 3 步骤,直到下方的商为 0。
    5.把右边的余数从下往上取,就可以得到目标的进制数。(这里的每一个余数是十进制的,要弄成对应的目标进制)。

因为十进制作为中间桥梁,所以进制间的转换就变成十进制与其他进制之间的转换了。

例子 1:二进制转十六进制

二进制的 1000 1101 转成十六进制:
我们先把二进制转成十进制,
1×2^7 + 0×2^6 + 0×2^5 + 0×2^4 + 1×2^3 + 1×2^2 + 0×2^1 + 1×2^0=141
二进制转十进制的转换方法:用二进制的每一位的数字乘于该位相应的 2 的次幂(幂数从右边开始,从 0 开始递增)。
十进制转十六进制的方法:把十进制数除以 16,直到商为 0,最后余数从下往上取。如下图
十进制转十六进制

图中的步骤说明:先把被除数 141 写到里面,把除数 16 写到左边,计算得到的商写到下面,把余数写到右边,这就完成一步
接着把得到的商作为被除数,重复上面的步骤,直到下面的商为 0 才结束。结束后把右边的余数从下往上取,得到的结果就是十进制对应的十六进制数。因为是十六进制,13 是 D,所以得到的结果是 8D。

例子 2:十进制转二进制

为了大家更好地理解,我再举个例子,就把十进制的 141 转换成二进制,过程如下图
十进制转二进制

步骤跟上面的是一样的,只是数据不一样而已,最后的结果是 10001101,跟我们刚开始的是一致的。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...