如何将整数中的多个二进制数字加倍?例如,如果 bin(x)="1001",则 bin(y) 必须为“11000011”。有什么智能又快速的算法吗?
更新:这是一个优雅的解决方案:
''.join([''.join(i) for i in zip(X,X)])
其中 X 是 bin(int_x)[2:]
但是,我对更快的方法和任何大小的整数感兴趣。也许算术转换应该有所帮助。
最佳答案
这是一种应该相当快的方法:将您的数字转换为二进制字符串,然后将结果重新解释为以 4 为基数。现在要确保所有“1”都正确加倍,将结果乘以 3。
>>> x = 9
>>> bin(x)
'0b1001'
>>> y = int(bin(x)[2:], 4)*3
>>> bin(y)
'0b11000011'
关于python - 加倍二进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2928886/