位運算子與三元運算子

2021-09-29 04:26:05 字數 2113 閱讀 8492

1、按位與運算子

int m=

6,b,c=

4,d,t;

b=m&c;

/*按位與,兩個操作位數中位都為1,結果才為1,否則結果為0。

* 轉換為二進位制:m=6,0110

* c=4,0100

* 結果為 0100 b=4

*/system.out.

println

(b)

2、按位或運算子

int m=

6,b,c=

4,d;

d=m|c;

/*按位或,兩個位中只要有乙個為1,那麼結果就是1,否則就為0

* 轉換為二進位制:m=6,0110

* c=4,0100

* 結果為 0110 d=6

*/system.out.

println

(d);

3、按位非運算子

int m=

6,t;

t=~m;/*按位非,按位取反,補碼

* m=6,0000 0110

* 1111 1001

* 1111 0111

* 結果為 t=-7

* 補碼,乙個數的原**名為取反加1,0表示正數,1表示負數

*/system.out.

println

(t);

4、按位異或運算子

int m=

6,t;

t=~m;

/*按位非,按位取反,補碼

* m=6,0000 0110

* 1111 1001

* 1111 0111

* 結果為 t=-7

* 補碼,乙個數的原**名為取反加1,0表示正數,1表示負數

*/system.out.

println

(t);

5、左移運算子

int p=

6,o=

2,u;

u=p<

/*左移運算子,在最低位補0,向左移n位,就相當於乘於2的n次方

* p=6,00000110---00011000 結果為24

*/system.out.

println

(u);

6、右移運算子

int p=

6,o=

2,i;

i=p>>o;

/*右移運算子,如果是正數,則在最高位補0,如果是負數,則在最高位補1。向右移n位,就相當於除於2的n次方

* p=6,00000110---00000001 結果為1

* 如果為10000100 則為11100001

*/system.out.

println

(i);

7、無符號右移運算子

int p=

6,o=

2,k;

k=p>>>o;

/*無符號右移運算子,在最高位補0,向右移n位,就相當於除於2的n次方

* p=6,00000110---00000001 結果為1

*/system.out.

println

(k);

結構為:boolean表示式?表示式1:表示式2

int m=

6,o=

2,j;

j=(p>o)

?p:o;

//如果表示式結果為true,則輸出表示式1的值,否則,輸出表示式2的值

邏輯運算子 位運算子與三元運算子

邏輯與 邏輯或 邏輯非 短路與 短路或 邏輯異或 aba ba ba ba b a a true true true true true true false false true false false false true true false true false true false fal...

移位運算子 三元運算子

移位運算子 左移 規律 乙個運算元進行左移運算的時候,結果就是等於運算元乘以2的n次方,n就是左移 的位數.3 1 3 2 1 6 3 2 3 2 2 12 3 3 3 2 3 24 右移 規律 乙個運算元在做右移運算的時候,實際上就是等於該運算元除以2的n次方,n就是右移的位數。3 1 3 2 1...

關係運算子 邏輯 運算子與三元運算子

1 關係運算子 返回值是boolean 一般用於判斷語句當中 等於 不等於 2 邏輯運算子 邏輯與 邏輯或 邏輯非運算 短路與 短路或 與 運算子 所有條件都為真,則結果為真,有乙個為假,則為假。boolean b b condition1 condition2 先求1,2的值,然後進行判斷 b c...