【问题标题】:number conversion general methodology?数字转换通用方法?
【发布时间】:2011-03-27 18:56:06
【问题描述】:

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

每当源或目标中涉及小数时,我都有一个通用的方法,

  • 如果十进制是源,则以目标为基数对该数字进行模运算。 (并以同样的方式继续,得到结果),
    示例:将十进制 20 转换为八进制
    • 20 模 8 = 4
      • 2 = 2

所以它是八进制的 24。这样你就可以从 Decimal 做任何事情(二进制、十六进制)。

  • 如果十进制是目标,则对源的基数从 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

十进制的总和是 10。这样你就可以将任何东西(八进制、十六进制)转换为十进制。

问题
有没有类似的一般逻辑,我可以用来在八进制、十六进制和二进制之间进行转换?

希望以上内容清楚。否则请告诉我。

【问题讨论】:

    标签: math binary


    【解决方案1】:

    二进制与八进制或十六进制之间的转换比十进制更容易。只需将二进制数字分成 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 位二进制数字。

    【讨论】:

      猜你喜欢
      • 2012-02-04
      • 1970-01-01
      • 2018-12-03
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      相关资源
      最近更新 更多