位与运算(x&1)判断奇偶时,解释器是否为1补零?我的理解正确吗?
关于
x & 1判断奇偶性的位与运算执行逻辑疑问 当我使用位与运算符&结合数字1,通过表达式x & 1判断数字x的奇偶性时,有一个疑问:解释器是否会根据x的二进制表示长度,给1的二进制补零后再执行逐位位与运算?比如常见的示例示意:
2 & 1被写成10 & 01后逐位运算5 & 1被写成101 & 001后逐位运算100 & 1被写成1100100 & 0000001后逐位运算
但我查看CPython的底层实现代码后,发现它的逻辑似乎是根据操作数的大小逐位比较,只关注两个数对应存在的二进制位。所以我认为实际执行过程应该是:
2 & 1:仅比较最低位,即0 & 1,结果为05 & 1:仅比较最低位,即1 & 1,结果为1100 & 1:仅比较最低位,即0 & 1,结果为0
我的这个理解是否正确?我因为某技术网站里的相关图示,对这个执行逻辑感到困惑。
内容的提问来源于stack exchange,提问作者kry23
相关产品推荐
相关产品推荐

