6
我使用的是Oracle的Java 7.51在Ubuntu 12.04,並試圖做到這一點位異或Java的長
long a = 0x0000000080000001^0x4065DE839A6F89EEL;
System.out.println("result "+ Long.toHexString(a));
Output: result bf9a217c1a6f89ef
但我期待的結果是4065de831a6f89ef
,因爲^操作是Java中的按位異或。我閱讀Java規範的哪一部分是錯誤的?
謝謝你的解釋。由於Eclipse沒有標記我沒有在第一個字面值中放置尾隨L,所以我想我是綠色的。 – Soham
@索姆 - 是的,你必須小心那些領先的零;它們對我們人類意味着比對Java編譯器更多:) –