python中的按位取反符号为 ~
定义一个变量为 a=60
在做~a时候,需要经历以下步骤:
1)转换为2进制: 0011 1100 (第一位是符号位,0表示正数,1表示负数)
2)计算补码: 0011 1100(正数的补码不变,负数的话,除去符号位,其他按位取反,最后加1)
3)按位取反操作: 1100 0011
4)转换为原码: 1011 1101(补码的补码就是原码)
5)转换为10进制: -60
这里补充一下其他的位运算:
& 按位与 都是1就是1
| 按位或 只要有一个1 就是1
^ 按位异或 只有不同才为1
<< 按位左移 按位将1左移(a<<2的结果就是240)
>> 按位右移 按位将1右移(a>>2的结果就是15)
还有一些非符号的运算符:
举例a =10 ,b =5
逻辑运算符:
and 返回值:如果a是False则返回False,否则返回b的计算值。
or 返回值:如果a是非0,则返回a的值,否则返回b的值。
not 返回值:如果a为True返回False,如果a为False返回True。
成员运算符:
用来描述是否在某个序列中
in
not in
身份运算符:
is 是判断两个标识符是不是引用自一个对象,x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is
not is