2024-05-16 22:06:08 发布
网友
研究模式识别需要识别有理数的二元表示中的重复模式。bin(2**24/n)去掉前导零,例如bin(2**24/11)->;0b101110100010111010001,而不是{}。当然,前导零的数目是可变的。这里明显的模式是0001011101。。。在
bin(2**24/n)
bin(2**24/11)
0b101110100010111010001
我对Python还处于学习阶段是一个傻瓜。有没有适合Python的方法来处理这个问题?在
如果您有比字符串格式更高级的需求,您可能会发现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'
它永远不会切断前导零位,并且可以做一些其他有用的技巧
我不确定您的具体需求是什么,所以所有这些都可能有点过头了,而且您可能在任何情况下都不希望使用外部库,但是Python对位数组的内置支持有点基础。在
这可以通过2.6+中的字符串格式来实现:
>>> '{0:024b}'.format(23) '000000000000000000010111'
如果您有比字符串格式更高级的需求,您可能会发现bitstring模块很有用。在
它永远不会切断前导零位,并且可以做一些其他有用的技巧
^{pr2}$我不确定您的具体需求是什么,所以所有这些都可能有点过头了,而且您可能在任何情况下都不希望使用外部库,但是Python对位数组的内置支持有点基础。在
这可以通过2.6+中的字符串格式来实现:
相关问题 更多 >
编程相关推荐