0010 1101 1011 0100 0111 1100 1000 0101
我想右移26,但失败了
print(bin(00101101101101000111110010000101) >> 26)
,调试错误是SyntaxError:invalid token
右移26应返回1011
怎么样?
0010 1101 1011 0100 0111 1100 1000 0101
Shift 0010 1101 1011 0100 0111 1100 1000 0101>> 22返回10110110 并且00001111返回0110转换为十进制6?
<00>用00001111?用00001111怎么做?答案 0 :(得分:3)
您使用bin()
是错误的。 The documentation states:
将整数转换为二进制字符串。
由于这不是你所追求的,这是错误的。你试图右移一个字符串,这是不可能的。
你的意思是:
print(0b00101101101101000111110010000101 >> 26)
或者,如果您希望将答案作为二进制字符串:
print(bin(0b00101101101101000111110010000101 >> 26))
这里,前缀0b
在Python中用于二进制数字文字。
答案 1 :(得分:2)
bin
返回一个字符串,它是字符串的二进制表示。
print (0b00101101101101000111110010000101 >> 26)
我认为应该工作。
您看到的语法错误是因为整数文字不能以python3.x中的0
开头 - 在python2.x中,这意味着您要声明八进制文字。
e.g。 (python2.x):
>>> print 025
21
答案 2 :(得分:1)
0b
作为二进制数的前缀,以向Python表明它是二进制数。试试这个:
print(bin(0b00101101101101000111110010000101 >> 26))
编辑:输出:
0b1011
答案 3 :(得分:0)
阅读Python bin()的文档,看起来你应该传递bin()一个十进制整数,所以它将00101101101101000111110010000101解释为十进制。