如何在24位范围内生成小数?

时间:2015-04-26 20:45:23

标签: php python math

我有24位二进制,这是 111010001100001010011000 等于15254168

我只是“猜测”它的24位,因为二进制长度是24。

我想以编程方式生成所有24位小数。 (C,PHP或Python)

2 ** 24返回16.777.216

所以有16.777.216个其他小数(组合)。我该如何生成它们?

我无法理解24位的“范围”。 愿有人帮我这个吗?

感谢。

2 个答案:

答案 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