我想做一点操作,需要一些帮助:
我有一个16位的单词,我想把它一分为二,颠倒每一个,然后再加入他们。
例如,如果我有0b11000011
首先我把它分成0b1100和0b0011
然后我反转得到0b0011和0b1100
最后重新加入他们,得到0b00111100
谢谢!
发布于 2016-05-11 22:15:27
这里有一种方法:
def rev(n):
res = 0
mask = 0x01
while mask <= 0x80:
res <<= 1
res |= bool(n & mask)
mask <<= 1
return res
x = 0b1100000110000011
x = (rev(x >> 8) << 8) | rev(x & 0xFF)
print bin(x) # 0b1000001111000001请注意,上面的方法在单词上操作,而不是在问题中的示例字节上操作。
发布于 2016-05-11 22:09:46
以下是您可以尝试的一些基本操作,您可以在将字符串一分为二并反转后将结果连接起来
a = "0b11000011" #make a string
b = a[:6] #get first 5 chars
c = a[::-1] # invert the stringhttps://stackoverflow.com/questions/37164687
复制相似问题