给定一个数字,我想切换数字'n'的位
例如,如果n = 6 - > 0110
我想得到,结果= 9 - > 1001
切换,即
将1转换为0&在二进制表示中将0转换为1
如何在java中以编程方式执行此操作,方法是将num与1的执行XOR
谢谢大家的答案,所以这取决于我想要切换多少位
比如说,如果它的8位然后是0xff
如果它的整个32位然后是oxffffffff
1种方式是n ^ ~0
答案 0 :(得分:2)
你可以做到这一点。
int y = 6^0xf
如果你想使用完整的int,那么你必须与-1进行异或(二进制补码意味着这是全1)。
int y = 6^-1;
您还可以使用不同的表示方式使其更直观。
int mask = 0xffffffff; //also -1
答案 1 :(得分:2)
public static void main(final String[] args) {
final int n = 0b0110;
System.out.println(Integer.toBinaryString(n));
final int m = n ^ 0xffffffff;
System.out.println(Integer.toBinaryString(m));
}