用Python实现二进制分数的模式

2024-05-16 22:06:08 发布

您现在位置:Python中文网/ 问答频道 /正文

研究模式识别需要识别有理数的二元表示中的重复模式。bin(2**24/n)去掉前导零,例如bin(2**24/11)->;0b101110100010111010001,而不是{}。当然,前导零的数目是可变的。这里明显的模式是0001011101。。。在

我对Python还处于学习阶段是一个傻瓜。有没有适合Python的方法来处理这个问题?在


Tags: 方法gtbin模式阶段数目前导傻瓜
2条回答

如果您有比字符串格式更高级的需求,您可能会发现bitstring模块很有用。在

>>> from bitstring import BitArray
>>> a = BitArray(24)          # 24 zero bits
>>> a.uint = 2**24/11         # set the unsigned integer propery
>>> a.bin                     # get the binary propery
'000101110100010111010001'

它永远不会切断前导零位,并且可以做一些其他有用的技巧

^{pr2}$

我不确定您的具体需求是什么,所以所有这些都可能有点过头了,而且您可能在任何情况下都不希望使用外部库,但是Python对位数组的内置支持有点基础。在

这可以通过2.6+中的字符串格式来实现:

>>> '{0:024b}'.format(23)
'000000000000000000010111'

相关问题 更多 >