方法:
#位运算
N & [(~N) + 1]
#直接与补码进行与运算
N & -N #其实就是第一种方法,~N为反码,~N+1=-N 为补码
运算 二进制结果
N 1010011010100
~N 0101100101011
(~N)+1 0101100101100
N & [(~N)+1] 0000000000100
EXP:
给定一个整型数字 num_1
,请你将这个数处理为:
只保留这个数二进制形式下最右边的 1,然后打印这个二进制数对应的十进制数。
代码实现:
#方法一:
num_1 = int(input())
num_2 = (~num_1) + 1
print(num_1 & num_2)
#方法二:
num_1 = int(input())
num_2 = -num_1
print(num_1 & num_2)