我有一个2位数x
存储在一个字节中,我想将其反转,以便0转换为3,1到2,2到1和3到0。
x^3
是否是正确的做法?
此外,对于任意N
位数x,x^((1<<N)-1)
是否正确?
答案 0 :(得分:4)
x ^ 3适用于两位数。如果你有4位数字,使用x ^ 15,或者用十六进制写,x ^ 0x0f如果你想要的话。
答案 1 :(得分:1)
不,x^(N-1)
无效。可行的是x^(pow(2,N)-1)
答案 2 :(得分:1)
代码:
((~x)&(0x3))
测试代码(同样的代码也应该在C ++中工作):
public static void main(String[] args) {
// TODO Auto-generated method stub
//System.out.println("Hello");
for(int i=0; i<=3; i++) {
System.out.println("Complement of " + i + " is " + (~i & 0x3));
}
}
结果:
Complement of 0 is 3
Complement of 1 is 2
Complement of 2 is 1
Complement of 3 is 0