python中的按位运算符

按位与换算符:

标准解释:若参与运算的两个值的对应位都为1,则该位的结果为1,否则为0。

设a=10,b=8,那么他们的二进制表示为:

 

            a

           b         

设c=a&b。

从右向左开始,可以看出二进制中,第一位都没有1,所以c的第一位为0;

第二位只有a中有1,b没有,规定比较的数都得有1才能为1,所以c的第二位还是为0;

第三位与第一位一样,所以c的第三位为0;

第四位,a为1,b也为1,根据标准解释,则c的第四位为1。

所以c的二进制表示为 1000,转换成10进制就是8。

 

按位或运算符:

标准解释:参与运算的两个值的对应位只要有一个为1,则该位的结果为1,否则为0。

继续设a=10,b=8,那么他们的二进制表示为:

 

            a

           b         

设c=a|b。

从右向左开始,第一位都没有1,所以c的第一位为0;

第二位a中有1,b没有,所以c的第二位为1;

第三位与第一位一样,所以c的第三位为0;

第四位,a为1,b也为1,所以c的第四位为1。

所以c的二进制表示为 1010,转换成10进制就是10。

按位异或还算符:

标准解释:参与运算的两个值的对应位相异时,则该位的结果为1,否则为0。

继续设a=10,b=8,那么他们的二进制表示为:

 

            a

           b         

设c=a^b。

从右向左开始,第一位都为0,没有不同,所以c的第一位为0;

第二位a中有1,b没有,所以c的第二位为1;

第三位与第一位一样,所以c的第三位为0;

第四位,a为1,b也为1,没有不同,所以c的第四位为1。

所以c的二进制表示为 0010,转换成10进制就是2。

 

按位取反运算符:

其实这个我是有点迷糊的,对负数的二进制不太懂,看了许多答案也没看明白。。。记了一个比较快捷的记法:

例如a=5,那么~a = -(5+1),即~a = -6。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值