我有24位二进制,这是 111010001100001010011000 等于15254168
我只是“猜测”它的24位,因为二进制长度是24。
我想以编程方式生成所有24位小数。 (C,PHP或Python)
2 ** 24返回16.777.216
所以有16.777.216个其他小数(组合)。我该如何生成它们?
我无法理解24位的“范围”。 愿有人帮我这个吗?
感谢。
答案 0 :(得分:4)
<!-- language: python -->
这是你想要的吗?
>>> n = 3
>>> result = [bin(k)[2:].rjust(n, '0') for k in xrange(2**n)]
>>> print result
['000', '001', '010', '011', '100', '101', '110', '111']
>>> n = 24
答案 1 :(得分:2)
24位只意味着有24位(零或1)一起创建二进制数。
如果您想要所有组合,或者所有可以用24位表示的数字,它的范围是0到16777215.为什么?这是格式表(二进制=十进制):
000000000000000000000000 = 0
000000000000000000000001 = 1
000000000000000000000010 = 2
000000000000000000000011 = 3
....
....
111111111111111111111110 = 16777214
111111111111111111111111 = 16777215
你真的不需要生成任何东西。你可以在这里检查二进制到十进制:http://www.binaryhexconverter.com/binary-to-decimal-converter
另一件事:有时在二进制中,省略前导零。所以十进制三不是000000000000000000000011而是只有11.如果长度是24而第一个数字是1,它仍然只是范围8388608 - 16777215