方法:
#位运算
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)
本文介绍了如何使用位运算技巧,通过与补码的运算来实现将整数num_1转化为只保留最右边1的二进制表示,并转换为十进制。两种方法对比演示了如何用 (~num_1)+1 或者取负进行与运算。
570

被折叠的 条评论
为什么被折叠?



