我正在使用Ubuntu 12.04上的Oracle Java 7.51,并尝试做这件事。
但是我期望的结果应该是
long a = 0x0000000080000001 ^ 0x4065DE839A6F89EEL;
System.out.println("result "+ Long.toHexString(a));
Output: result bf9a217c1a6f89ef
但是我期望的结果应该是
4065de831a6f89ef
,因为在Java中^操作符是按位异或。我哪部分Java规范理解错误了?