数字转换一般方法?

时间:2010-08-10 11:49:56

标签: math binary

这是关于如何进行二进制到八进制,八进制到十六进制,二进制到十六进制之间的数字转换..(在所有这些十进制中没有位于源或目标的位置)

每当在源或目的地中涉及十进制时,我都有一般方法,

  • 如果decimal是source,则使用destination的base执行该数字的mod操作。 (并以同样的方式继续,得到结果),
    示例:将十进制20转换为八进制
    • 20 mod 8 = 4
      • 2 = 2

所以八月份是24。这样你可以从Decimal做任何事情(二进制,十六进制)。

  • 如果decimal是destination,则执行乘法运算,源的基数从0到N,从左到右开始。加起来得到小数。
    示例:将二进制1010转换为十进制
    • 0:0 x 2 ** 0 = 0
      • 1:1 x 2 ** 1 = 2
        • 0:0 x 2 ** 2 = 0
          • 1:1 x 2 ** 3 = 8

总和是十进制的十进制数。这样你可以做任何事情(八进制,十六进制)到十进制。

问题
是否有任何类似的通用逻辑,我可以用于八进制,十六进制和二进制之间的转换?

希望以上是清楚的。请告诉我。

1 个答案:

答案 0 :(得分:3)

二进制和八进制或十六进制之间的转换比十进制更容易。只需将二进制数字分成3或4组(取决于oct或hex),然后将每个组转换为数字。 (如果您没有3或4个二进制数字的倍数,只需用零填充数字。)

示例:

111101111010 binary
1111 0111 1010
   F    7    A
           F7A hex

111101111010
111 101 111 010
  7   5   7   2
           7572 oct

转换回来恰恰相反。八进制或十六进制中的每个数字直接转换为3或4个二进制数字。