我想询问是否有一种有效的方法来反转整数中的所有set和unset位。 例如: 如果我有整数:
1338842
这与二进制相同:
101000110110111011010
如何对此进行反转,使每1位变为0位,每0位变为1位。 反过来的结果应该是:
010111001001000100101
基本上是整数:
758309
不幸的是我无法展示我的尝试,因为我没有。 我不知道该怎么做。 这就是为什么我希望董事会成员可以给我一些建议。
答案 0 :(得分:8)
这正是按位非运算符(~
)的作用。
答案 1 :(得分:6)
按位运算符!
int value = 1338842;
int inversed = ~value;