Python中整数的~(按位取反)运算

原理:1. 在计算机中整数用补码表示,非负数的补码是自身的二进制表示,负数的补码是相反数的二进制表示按位取反然后加1

2. python中整数的按位取反运算是先对整数的补码进行按位取反然后再回到整数

例子:~(-6)=5

步骤:(1)先求-6的补码表示:

-6 ——> 6(相反数) ——> 0000 0110(二进制表示) ——> 1111 1001(按位取反) ——> 1111 1010(加1)

(2)按位取反:

1111 1010 ——> 0000 0101(按位取反)

(3)回到整数:

0000 0101 ——> 5(回到整数)

 

推论:~5=-6

证明:把步骤逆回去就是。

推论:n为非负整数,则 ~n = n-1

 

 

Python中,整数编码通常是指如何将数据表示为二进制形式,以便进行位操作。Python整数类型如`int`默认就是基于二进制的,并支持各种位级的操作。 1. **基本整数表示**:例如,当你创建一个数字`5`,它实际上是在内存中存储为二进制的`0b101`(十进制的5)。Python内部会自动管理这种转换。 2. **位运算符**: - `&`(按位与):对两个数的每一位执行AND操作,如果两个相应位都是1,则结果位是1,否则是0。 - `|`(按位或):对两个数的每一位执行OR操作,如果两个相应位有任何一个是1,则结果位是1。 - `^`(按位异或):如果两个相应位不同则结果位是1,否则是0。 - `~`(按位取反):对所有位进行NOT操作,即0变成1,1变成0。 - `<<`(左移):将第一个数的所有位向左移动指定的位数,最右边填充0。 - `>>`(右移):将第一个数的所有位向右移动指定的位数,最左边填充原来的符号位(正数往0填充,负数往1填充)。 3. **掩码操作**:常用于设置或清除整数中的特定位,通过与其他值进行按位与操作(`&`)来实现。比如`num &= 0b00001010`可以清除num的第4位和第5位。 ```python # 示例: a = 0b10101 # 十进制11 print(bin(a)) # 输出:0b10101 # 按位运算 b = a & 0b1100 # 只保留前三位,其他置零 print(bin(b)) # 输出:0b1010 # 左移和右移 c = a << 2 # 位移两位,结果是44(十进制) d = a >> 1 # 位移一位,结果是5(十进制) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值