两个int值,如a=2,b=3
创建另一个int引用,如int position.现在要将position的前16位表示为a的值,后16位表示为b的值,如何运算?
且要求此操作可逆。即可以通过一些计算从position得到a=2,b=3。
工作两年一直用SSH,这些忘光了,请各位指教
创建另一个int引用,如int position.现在要将position的前16位表示为a的值,后16位表示为b的值,如何运算?
且要求此操作可逆。即可以通过一些计算从position得到a=2,b=3。
工作两年一直用SSH,这些忘光了,请各位指教
int p = a;
b <<= 16;
p |= b;
System.out.println(Integer.toBinaryString(a));
System.out.println(Integer.toBinaryString(b));
int p = a;
p &= 0xffff;//前16位清空
b <<= 16;
p |= b;
System.out.println(Integer.toBinaryString(p));
int a = 2,b = 3;
int position = 0;
position = (position^a)<<16;
position = position^b;
a = position >>>16;
b = ((position >>>16)<<16)^position;