Java基礎之位運算子
位運算子是針對二進位制數的每一位進行運算的符號,它是專門針對數字0和1進行操作的。
下面的運算都是針對一個byte型別的數,也就是一個位元組大小的數,具體如下:
與運算子“&”是將參與運算的兩個二進位制數進行與運算,如果兩個二進位制位都為1,則該位的運算結果為1,否則為0。 例如將6與11進行與運算,一個byte型別的數字6對應的二進位制數為00000110,數字11對應的二進位制數為00001011。
位運算子“|”是將參與運算的兩個二進位制數進行“或”運算,如果二進位制位上有一個值為1,則該位的執行結果為1,否則為0。
位運算子“~”只針對一個運算元進行操作,如果二進位制位是0,則取反值為1;如果是1,則取反值為0。例如將6進行取反運算。
位運算子“^”是將參與運算的兩個二進位制數進行“異或”運算,如果二進位制位相同,則值為0,否則為1。
位運算子“<<”就是將運算元所有二進位制位向左移動一位。運算時,右邊的空位補0。左邊移走的部分捨去。例如一個byte型別的數字11用二進位制表示為00001011,將它左移一位。
位運算子“>>“就是將運算元所有二進位制位向右移動一位。運算時,左邊的空位根據原數的符號位補0或者1(原來是負數就補1,是正數就補0)。例如一個byte的數字11用二進位制表示為00001011,將它右移一位。
位運算子“>>>”就是將運算元所有二進位制位向右移動一位。運算時,左邊的空位補0(不考慮原數正負)。例如一個byte的11用二進位制表示為00001011,將它無符號右移一位。
本資源用於文章https://blog.csdn.net/from_heat/article/details/82224642