2015-10-03 72 views
-1

我們在java中是否有任何獨佔的NOR運算符?我看到Java將caret(^)視爲異或。但我無法使用表達式〜(x^y)Java中的獨佔NOR

編輯: 我試過~(x^y)。但它讓我感到不同。

對於前:

int x = 0b1001, y = 0b0011; 

System.out.println (~(x^y)); 

給我-11。但我應該得到5.我相信我越來越-11,因爲int有4個字節,額外的位處理不當。

+0

你的意思是邏輯xnor還是按位xnor? – Mureinik

+0

位明智的NOR。與位運算符有關。 – user263229

+3

你檢查了http://stackoverflow.com/questions/9659622/java-bit-wise-nor? – Mureinik

回答

1

~(x^y)是一個按位XNOR,適用於int值或long值。

!(x^y)是一個邏輯XNOR,適用於boolean s。

Java只對3264位數進行按位操作,所以不能指望4位計算的正確結果。

爲了得到你想要的答案,你必須做~(x^y) & 0xF0xF只有最後4位設置,所以給出了期望的結果。