Java位運算符可以用來對二進位位進行操作,Java語言提供了6個位運算符,它們分別是按位與(&)、按位或(|)、按位異或(^)、取反(~)、左移位(<>)。
一、按位與(&)運算符
按位與(&)運算符的規則是兩個操作數的二進位值中,只有二者均為1,結果為1,否則為0。
int a = 5; // a的二進位表示為0101 int b = 3; // b的二進位表示為0011 int c = a & b; // c的二進位表示為0001,即1
在這個例子中,a和b進行按位與運算之後,結果為1。因為a和b的二進位值為0101和0011,按位與操作之後,得到的值為0001(僅有的一位均為1),轉化成十進位之後,得到的結果為1。
二、按位或(|)運算符
按位或(|)運算符的規則是兩個操作數的二進位值中,只有二者均為0,結果為0,否則為1。
int a = 5; // a的二進位表示為0101 int b = 3; // b的二進位表示為0011 int c = a | b; // c的二進位表示為0111,即7
在這個例子中,a和b進行按位或運算之後,結果為7。因為a和b的二進位值為0101和0011,按位或操作之後,得到的值為0111(其中有三位均為1),轉化成十進位之後,得到的結果為7。
三、按位異或(^)運算符
按位異或(^)運算符的規則是兩個操作數的二進位值中,只有其中一個是1,結果為1,否則為0。
int a = 5; // a的二進位表示為0101 int b = 3; // b的二進位表示為0011 int c = a ^ b; // c的二進位表示為0110,即6
在這個例子中,a和b進行按位異或運算之後,結果為6。因為a和b的二進位值為0101和0011,按位異或操作之後,得到的值為0110(其中有兩位均為1),轉化成十進位之後,得到的結果為6。
四、取反(~)運算符
取反(~)運算符是一元操作符,用於對操作數的二進位位按位取反。
int a = 5; // a的二進位表示為0101 int b = ~a; // b的二進位表示為1010,即-6
在這個例子中,a進行取反操作之後,結果為-6。因為a的二進位值為0101,按位取反操作之後,得到的值為1010(符號位為1,表示負數),轉化成十進位之後,得到的結果為-6。
五、左移位(<<)運算符
左移位(<<)運算符的規則是將左側的操作數向左移動指定的位數,右側的操作數指定了需要移動的位數。
int a = 5; // a的二進位表示為0101 int b = a << 2; // b的二進位表示為010100,即20
在這個例子中,a進行左移位操作,並指定需要左移的位數為2。因為a的二進位值為0101,左移2位之後,得到的值為010100(轉化成十進位之後,得到的結果為20)。
六、右移位(>>)運算符
右移位(>>)運算符的規則是將左側的操作數向右移動指定的位數,右側的操作數指定了需要移動的位數。在右移位操作中,如果原來的值為正,則在左側插入0;如果原來的值為負,則在左側插入1。
int a = 20; // a的二進位表示為10100 int b = a >> 2; // b的二進位表示為00101,即5
在這個例子中,a進行右移位操作,並指定需要右移的位數為2。因為a的二進位值為10100,右移2位之後,得到的值為00101(轉化成十進位之後,得到的結果為5)。
總結:
Java位運算符可以用來對二進位位進行運算操作。在實際編程中,位運算符常用於對底層數據進行處理,例如文件、網路、嵌入式開發等領域均會用到位運算。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/306354.html