java基礎09:邏輯運算子 、位運算子
阿新 • • 發佈:2021-08-09
邏輯運算子:
package com.anjiaxiaopihai.base.operator; //邏輯運算子: public class Demo05 { public static void main(String[] args) { //與(and) 或 (or) 非(取反) boolean a = true; boolean b = false; System.out.println("a && b:"+(a&&b));//邏輯與運算: 如果兩個變數都為真,結果才為true System.out.println("a || b:"+((a||b)));//邏輯或運算: 如果兩個變數有一個為真,結果為true System.out.println("!(a && b):"+!((a&&b)));//如果是真,則變為假,如果是假,則變為真 //短路運算 int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d);//false System.out.println(c);//5 (c<4)&&(c++<4);中的(c<4)為假,執行在(c++<4)前就已經終止了,所以C返回的資料為5. // 如果繼續執行的話c = c + 1; c=c;最終C就是6了。 } }
位運算子:
package com.anjiaxiaopihai.base.operator; //位運算子: public class Demo06 { public static void main(String[] args) { /* A = 0011 1100 B = 0000 1101 ------------------------------- A&B = 0000 1100 //與:如果對應位兩個都為1,則為1,否則就為0 A|B = 0011 1101 //或:如果對應位兩個都為0,則為0,否則就為1 A^B = 0011 0001 //取反:如果對應位兩個相同為0,兩個不相同就為1 ~B = 1111 0010 //取反:與對應位完全相反 2*8 = 16 2*2*2*2 效率極高!!!!! << *2 左移 >> /2 右移 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 0000 0000 0 */ } }