我想做一些操作,需要一些帮助:
我有一个16位的字,想把它分成两个,反转每个然后再加入它们。
示例,如果我有0b11000011
首先我将其分为0b1100和0b0011
然后我反过来获得0b0011和0b1100
最后重新加入他们获得0b00111100
谢谢!
答案 0 :(得分:3)
以下是一种方法:
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
请注意,上述方法对单词进行操作,而不是字节作为问题中的示例。
答案 1 :(得分:1)
这里有一些你可以尝试的基本操作,你可以在将字符串分成两部分并将其反转后连接结果
a = "0b11000011" #make a string
b = a[:6] #get first 5 chars
c = a[::-1] # invert the string