如何将 10^4 转换为二进制

How to convert 10^4 to binary

我需要将 10^4 转换为二进制

扩展它会得到一个很大的数字,将它除以 2 很多次效率真的很低

10^4 = 10000

如何直接进行

有一种将十进制数转换为二进制形式的快速方法,

   0^2 = 1 
   1^2 = 2
   2^2 = 4
   2^3 = 12
   2^4 = 16
   2^5 = 32
   2^6 = 64
   2^7 = 128
   2^8 = 256
   2^9 = 512
   2^10 = 1024
   2^11 = 2048
   2^12 = 4096
   2^13 = 8192
   2^14 = 16384

因为我们要求10000的二进制,所以可以停在2^13。数字13表示10000的二进制是14位长(0-13)。

1000 - 8192 = 1808

所以我们接下来要从 2^0 到 2^10 (2^10<1808) 中找到总和为 1808 的数字。不难从 table

中找到这些数字
2^10 = 1024
2^9 = 512
2^8 = 256
2^4 = 16

1024+512+256+16 = 1808

这意味着在十进制数10000的二进制形式中,只有第13、10、9、8、4位位置为'1',其他位位置为'0'。

所以10000的二进制是,

       ```
            10011100010000
        ```

上面的很容易记住table所以我们不需要使用非常基础的 将十进制数转换为二进制形式的繁琐方法。

我会写一个递归函数,伪代码在这里:

int Convert_to_binary (x):
     if(x == 0):
        return 1;
     if(x == 1):
        return 10;
     if(x%2 == 1):
        return Convert_to_binary(x-1)+1;
     if(x%2 == 0):
        return Convert_to_binary(x/2)*10;

这将 return 二进制格式作为整数,例如 2 在二进制中是 10,1 在二进制中是 1 二进制格式和 3 是 11 等等