帶符號異或運算

-1 ^ -1 << 5

第一步 -1 << 5
-1 << 5
1000 0001 << 5
1010 0000

第二步 -1 ^ 1010 0000
1000 0001 原碼 ^ 1010 0000 原碼
負數異或須要用補碼
1111 1110 反碼 ^ 1101 1111 反碼
1111 1111 補碼 ^ 1110 0000 補碼 = 0001 1111

結果爲正數,因此結果爲1+2+4+8+16=31
結果若是爲負數,須要結果-1,再取反(由 原碼 -> 取反 -> +1 補碼 得 補碼 -1 -> 取反 -> 原碼).net

 

參考:https://blog.csdn.net/romeo12334/article/details/82261319blog

相關文章
相關標籤/搜索