Python按位移位不能按预期工作

2024-03-28 19:23:13 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码

http://pastebin.com/xRAS7qLH

这会创建一个无限循环,所以不要运行它。在

        intMask = 0
        while(temp != 0):
            print bin(temp)[2:].zfill(32)
            temp = long(temp << 1)
            intMask += 1

当我看输出时,它看起来像这样

^{pr2}$

我期待的是更像这样的事情

11111111111111111111111100000000

11111111111111111111111000000000

11111111111111111111110000000000

等等

python肯定有不同的地方,或者我需要排版什么?我错过了什么?在


Tags: comhttp密码bin地方事情templong
1条回答
网友
1楼 · 发布于 2024-03-28 19:23:13

Python的整数具有任意精度,这除了很难拼写外,还意味着随着位的移动,它会变得越来越大。如果你想限制尺寸,你可以做一些类似的事情

temp = long(temp << 1) & (0xffffffff)

它应该归零。在

编辑:具体地说,按位执行;0xffffffff(8 f)是32 1(二进制),因此32位内的任何内容都将保留;超出32位的内容将被设置为零)。有关详细信息,可以执行以下操作:

温度=长时间(温度<;<;1) 打印“之前和:”,bin(temp) 温度=温度和0xFFFFFF 打印“后和:”,bin(temp)

相关问题 更多 >