首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python使用bits

Python使用bits
EN

Stack Overflow用户
提问于 2016-05-11 21:49:10
回答 2查看 122关注 0票数 0

我想做一点操作,需要一些帮助:

我有一个16位的单词,我想把它一分为二,颠倒每一个,然后再加入他们。

例如,如果我有0b11000011

首先我把它分成0b1100和0b0011

然后我反转得到0b0011和0b1100

最后重新加入他们,得到0b00111100

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-05-11 22:15:27

这里有一种方法:

代码语言:javascript
运行
复制
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

请注意,上面的方法在单词上操作,而不是在问题中的示例字节上操作。

票数 3
EN

Stack Overflow用户

发布于 2016-05-11 22:09:46

以下是您可以尝试的一些基本操作,您可以在将字符串一分为二并反转后将结果连接起来

代码语言:javascript
运行
复制
a = "0b11000011"  #make a string 

b = a[:6]         #get first 5 chars

c = a[::-1]       # invert the string
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37164687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档