python中什么是按位取反_python入门之左移,右移,按位与,按位或,按位异或,按位取反...

1.<<(左移)

将数字的位向左移动指定的位数(二进制表示);

例:2<<2输出8

2的二进制表示为10,向左移动2位为1000,十进制为8.

2.>>(右移)

将数字的位向右移动指定的位数(二进制表示);

例:11>>1输出5

11的二进制表示为1011,向右移动1位为101,十进制为5.

3.&(按位与)

将数字(二进制)对应位数比较,若对应位都为1,则对应位为1,否则为0;

例:5&3输出1

5的二进制为101,3的二进制为011,按位与结果为001,十进制为1.

4.|(按位或)

将数字(二进制)对应位数比较,若对应位至少有一个为1,则对应位为1,若对应位都为0,则对应位为0;

例:5|3输出7

5的二进制为101,3的二进制为011,按位或结果为111,十进制为7.

5.^(按位异或)

将数字(二进制)对应位数比较,若对应位只有一个为1,则对应位为1,否则对应位为0;

例:5^3输出6

5的二进制为101,3的二进制为011,按位或结果为110,十进制为6.

6.~(按位取反)

计算机内部在做数学运算时(也就是计算机的0和1的运算),都是以补码为标准的,说白了计算机中就一种码那就是补码,而现实社会中的编码规则,例如原码、反码都是我们自定义的,为了和计算机中的补码形成转换关系。所以说在我们手工计算这类由计算机计算的01运算,要站在计算机的角度。因此首先就要将我们的原码反码全都先转为补码,再来计算.

正数的原、反、补码都是它本身;负数的原码最高位为1开头,反码是最高符号位不变,其余位在原码的基础上取反,补码是在反码的基础上+1即可得到.

例:~5输出6

5的补码:00000101

00000101按位取反,取反结果为: 11111010

这里的结果是用补码表示的,还是机器表示形式,转化为自然语言的编码,把结果转化为原码:

补码-1转为反码: 11111010 - 1 = 11111001

反码再取反转为原码:11111001 = 10000110

原码转为十进制,答案就是-6.

x按位取反运算公式为: -(x+1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值