您好,登錄后才能下訂單哦!
本篇內容介紹了“Java中的位運算與移位運算有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
規則: 如果兩個相應的二進制形式的對應的位數都為 1,則結果為 1;否則為 0; | ||
4 & 5 | ||
4 | 0000 0100 | |
5 | 0000 0101 | |
按位與運算 | & | |
4 & 5 = 4 | 0000 0100 | |
1 * 2^2 = 4 | ||
-4 & 5 | ||
-4 | 1111 1100 | |
5 | 0000 0101 | |
按位與運算 | & | |
規則:運算結果符號位是1,為負數, 需要減 1,再取反(其他運算也要遵循) | ||
-4 & 5 = 4 | 0000 0100 | |
1 * 2^2 = -4 |
1.正數直接取二進制運算
2.負數取反加一得補碼再運算,得到的結果符號位為 0,不需要做任何操作直接給出結果
規則: 有 1 為 1;否則為 0; | ||
4 | 5 | ||
4 | 0000 0100 | |
5 | 0000 0101 | |
按位或運算 | | | |
4 | 5 = 5 | 0000 0101 | |
1 * 2^0 + 1 * 2^2 = 5 | ||
-4 | 5 | ||
-4 | 1111 1100 | |
5 | 0000 0101 | |
按位或運算 | | | |
規則:運算結果符號位是1,為負數, 需要減 1,再取反(其他運算也要遵循) | ||
-4 | 5 = | 1111 1101 | |
減1 | 1111 1100 | |
取反 | -0000 0011 | -4 | 5 = -3 |
1 * 2^0 + 1 * 2^1 = -3 |
規則: 相同為 0;不同為 1; | ||
4 ^ 5 | ||
4 | 0000 0100 | |
5 | 0000 0101 | |
按位異或運算 | ^ | |
4 ^ 5 = 1 | 0000 0001 | |
1 * 2^0 = 1 | ||
-4 ^ 5 | ||
-4 | 1111 1100 | |
5 | 0000 0101 | |
按位異或運算 | ^ | |
規則:運算結果符號位是1,為負數, 需要減 1,再取反(其他運算也要遵循) | ||
-4 ^ 5 = | 1111 1001 | |
減1 | 1111 1000 | |
取反 | -0000 0111 | -4 ^ 5 = -7 |
1 * 2^0 + 1 * 2^1 + 1 * 2^2 = -7 |
規則: 右邊空出的位用 0 填補高位,左移溢出則舍棄該高位。 | ||
8 << 2 | ||
8 | 0000 1000 | |
<< 2 | 0010 0000 | |
左移運算符 | << | |
結果 | 8 << 2 = 32 | |
1 * 2^5 = 32 | ||
-8 << 2 | ||
-8 | 1111 1000 | |
<< 2 | 1110 0000 | |
左移運算 | << | |
規則:運算結果符號位是1,為負數, 需要減 1,再取反(其他運算也要遵循) | ||
減1 | 1101 1111 | |
取反 | -0010 0000 | -8 << 2 = -32 |
1 * 2^5 = -32 |
規則: 左邊空出的位正數用 0 負數 1 填補,右移溢出則舍棄該低位。 | ||
8 >> 2 | ||
8 | 0000 1000 | |
>> 2 | 0000 0010 | |
左移運算符 | >> | |
結果 | 8 >> 2 = 2 | |
1 * 2^1 = 2 | ||
-8 >> 2 | ||
-8 | 1111 1000 | |
>> 2 | 1111 1110 | |
左移運算 | >> | |
規則:運算結果符號位是1,為負數, 需要減 1,再取反(其他運算也要遵循) | ||
減1 | 1111 1101 | |
取反 | -0000 0010 | -8 >> 2 = -2 |
1 * 2^1 = -2 |
規則: 正數與右移規則一樣;負數無符號右移,在高位補 0 | ||
8 >>> 2 | ||
8 | 0000 1000 | |
>> 2 | 0000 0010 | |
無符號右移運算符 | >>> | |
結果 | 8 >>> 2 = 2 | |
1 * 2^1 = 2 | ||
-8 >>> 2 | ||
-8 | 1111 1111 1111 1111 1111 1111 1111 1000 | |
>>> 2 | 0011 1111 1111 1111 1111 1111 1111 1110 | |
無符號右移運算符 | >>> | |
規則:運算結果符號位是1,為負數, 需要減 1,再取反(其他運算也要遵循) | ||
減1 | - | |
取反 | - | -8 >>> 2 = 1073741822 |
1073741822 |
“Java中的位運算與移位運算有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。