1、&(位運算符AND)
運算時會把十進制的數先轉化爲二進制的數,兩個操作數中位都爲1,結果才爲1,否則結果爲0,看一個簡單的例子。
public class Testdata1 {
public static void main(String[] args) {
int k=12;
int j=123;
System.out.println(k&j);
}
}
運行結果爲8;因爲12的二進制數爲1101,123的二進制數爲1111011,根據與運算符的運算規律,只有兩個位都是1,結果纔是1,所以結果爲8
2、^(異或運算符)
異或運算符是用符號“^”表示的,其運算規律是:
兩個操作數的位中,相同則結果爲0,不同則結果爲1。看一個簡單的例子。
public class Testdata2 {
public static void main(String[] args) {
int k=12;
int j=123;
System.out.println(k^j);
}
}
運行結果爲119,因爲12的二進制數爲1101,123的二進制數爲1111011,根據異或運算的規律,兩個操作數的位中,相同則結果爲0,不同則結果爲1
可以得出其結果爲1110111,轉化爲十進制就是119
3、|(或運算)
其運算規律如下:
兩個位只要有一個爲1,那麼結果就是1,否則就爲0,看一個簡單的例子。
public
class Testdata3{
public static void main(String[] args) {
int k=12;
int j=123;
System.out.println(k|j);
}
}
運行結果爲127,因爲12的二進制數爲1101,123的二進制數爲1111011,根據或運算的運算規律,兩個位只要有一個爲1,那麼結果就是1,否則就爲0,可以得出結果爲1111111,轉化爲十進制數爲127
4、~(非運算符)
其運算規律如下:
如果位爲0,結果是1,如果位爲1,結果是0,看一個簡單例子。
public class Testdata4{public static void main(String[] args) {
int k=-12;
System.out.println(~k);
}
}
運行結果爲11,因爲-12的二進制數爲11111111111111111111111111110100,根據非運算的運算規律如果位爲0,結果是1,如果位爲1,結果是0,可以得出結果爲1011,轉化爲十進制爲11
5、<<( 左移運算符)
其運算規律如下:
var<<n,相當於var乘以2的n次方,看一個簡單的例子。
public
class Testdata5 {
public static void main(String[] args) {
int k=2;
System.out.println(k<<5);
}
}
運行結果爲32;
6、>>(右移運算符)
其運算規律如下:
var<<n,相當於var除以2的n次方,看一個簡單的例子。
public class Testdata 6{public static void main(String[] args) {
int k=32;
System.out.println(k>>5);
}
}
運行結果爲1;
7、>>>(無符號右移)
其運算規律如下:
忽略符號位,空位都以0補齊,看一個簡單的例子。
public
class Testdata7 {
public static void main(String[] args) {
int k=32;
System.out.println(k>>>2);
}
}
運行結果爲8,因爲32的二進制數爲100000,右移兩位就變爲1000,轉化爲十進制數爲8