如何将 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 等等
我需要将 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 等等