python二进制取反_Python的二进制位运算

Python语言能够对整数进行逐位操作,它支持的运算符及含义如下所示:

&:按位与

|:按位或

^:按位异或

~:取反

<

>>:右移

对于整型数据,各种位操作是对该数据的补码进行的(正数的补码与原码相同,下面举例皆以正数为例);对于长整型数据,由于其位宽不定,所以进行位运算时,认为其补码的符号位向外无限扩展。下面对各运算符进行举例说明:

(1)首先看取反

>>> ~1

-2

>>> ~0x0001

-2

>>>

正整数1,int型是32位的,就是00000000 00000000 00000000 00000001 求反变为11111111 11111111 11111111 11111110,这正好是-2的补码。同样十六进制的0x0001结果是一样的。

(2)按位与

>>> 1&2

0

>>> 1&3

1

>>>

对于按位与,就是对参加运算的两个整数的补码逐位进行逻辑与运算,即参加运算的两个运算量,如果两个相应位都为1,则该位的结果为1,否则为0。

(2)按位或

>>> 1|1

1

>>> 1|2

3

>>>

你可能感兴趣的:(python二进制取反)