小弟是个新手对下面这个程序的位反转不太理解,请教高手指教,谢谢!
public class XorCode
{
public static void main(String[] args)
{
char ch = 'A';
System.out.println("编码前:" + ch);

ch = (char)(ch ^ 7);
System.out.println("编码后:" + ch);

ch = (char)(ch ^ 7);
System.out.println("解码:" + ch);
}
}结果:
编码前:A
编码后:F
解码:A

解决方案 »

  1.   

    没明白楼主的反转是什么意思

    A^B^B = A 这个是异或的特点
      

  2.   

    7  的 二进制 是  00000111
    'A' 的 二进制 是 01000001
    两者位异或运算后 01000110  十进制 70 对应 F
    在与7的异或后    01000001  十进制 65 对应 A
      

  3.   

    a: 1100
    b: 1010
    -------
    c: 0110a^b = c
    c^a = b
    c^b = axor真的很有意思