[英]~1 and ~0 giving strange results in python 3
&,|,^和〜都是python中的按位运算符。 &,^和| 对我来说一切正常-当我取1 | 0时,我得到1。但是〜给我奇怪的结果。 〜1给我-2,〜0给我-1。 这是因为我使用整数还是什么? 我正在运行python 3。
我希望从〜0得到1,从〜1得到0(整数)。 这可能吗?
这是因为整数的二进制补码实现。
如果将所有位从0000 0000
切换(假设此处为8位整数,但对于较大的整数仍然有效),则得到1111 1111
。 在二的补码解释中,其值为-1,因为要表示-1,您需要将1取反,然后将所有位加1:
0000 0001 (= 1)
-> 1111 1110 (inverted)
-> 1111 1111 (added one, now this is '-1')
第二个示例也是如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.