Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对于位运算符,解释器真正看到并执行的是什么?_Python_Python 2.7 - Fatal编程技术网

Python 对于位运算符,解释器真正看到并执行的是什么?

Python 对于位运算符,解释器真正看到并执行的是什么?,python,python-2.7,Python,Python 2.7,我试图理解Python 2.7(,&,,~和^),所以我的问题是:解释器真正看到和执行的是什么?当: >>> 3 >> 0 3 >>> 3 >> 1 1 为什么 >>> 3 >> 2 0 然后,如果将第二个数字增加一,答案将继续是0 他们将其视为一个二进制二进制补码中的一串位。但是我不明白这里发生了什么。看看这些数字的二进制表示,想象一下左边有无限个零: ...0000011 = 3 现在,>所做的是

我试图理解Python 2.7(
&
~
^
),所以我的问题是:解释器真正看到和执行的是什么?当:

>>> 3 >> 0
3
>>> 3 >> 1
1
为什么

>>> 3 >> 2
0
然后,如果将第二个数字增加一,答案将继续是
0


他们将其视为一个二进制二进制补码中的一串位。但是我不明白这里发生了什么。

看看这些数字的二进制表示,想象一下左边有无限个零:

...0000011 = 3
现在,
>
所做的是将二进制表示向右移动。这与删除最后的数字相同:

如果按
0
位置移动,则不会发生任何更改。因此,
3>>0
是3

如果按
1
place移位,则删除最后一个二进制数字:

...0000011 >> 1 = ...000001 = 1
因此,
3>>1
是1

如果按
2
或更多位置移位,所有二进制位都将被删除,只剩下0:

...0000011 >> 2 = ...00000 = 0

这就是为什么
3>>2
(或大于2)总是0的原因。

看看这些数字的二进制表示形式,想象一下左侧有无限个零:

...0000011 = 3
现在,
>
所做的是将二进制表示向右移动。这与删除最后的数字相同:

如果按
0
位置移动,则不会发生任何更改。因此,
3>>0
是3

如果按
1
place移位,则删除最后一个二进制数字:

...0000011 >> 1 = ...000001 = 1
因此,
3>>1
是1

如果按
2
或更多位置移位,所有二进制位都将被删除,只剩下0:

...0000011 >> 2 = ...00000 = 0

这就是为什么
3>>2
(或大于2)总是0。

我不知道你的问题是什么意思。“译员真正看到和执行的是什么”到底是什么意思?“他们把它当作一个二进制补码写的一串位”——因为这就是它的真正含义,在计算机内存中,整数表示法
3
只是为了方便读者。3是0011(假设4位),0011右移1是0001,这就是。。1.谢谢你的回答马龙、帕斯卡海因和迈克尔·拉兹洛我现在很清楚了。Jornsharpe感谢你没有理解我的问题,仍然试图给出答案(我不知道你不知道这个问题时能给出答案),我不知道你的问题是什么意思。“译员真正看到和执行的是什么”到底是什么意思?“他们把它当作一个二进制补码写的一串位”——因为这就是它的真正含义,在计算机内存中,整数表示法
3
只是为了方便读者。3是0011(假设4位),0011右移1是0001,这就是。。1.谢谢你的回答马龙、帕斯卡海因和迈克尔·拉兹洛我现在很清楚了。jonrsharpe感谢你没有理解我的问题,并且仍然试图给出答案(我不知道你在不知道问题的时候可以给出答案)感谢你的回答Maroun Maroun,pascalhein和Michael Lazlo现在我很清楚了。jonrsharpe感谢你没有理解我的问题,并且仍然试图给出答案(我不知道你在不知道问题的时候可以给出答案)感谢你的回答Maroun Maroun,pascalhein和Michael Lazlo现在我很清楚了。jonrsharpe感谢你没有理解我的问题,仍然试图给出答案(我不知道你在不知道这个问题的时候能给出答案)