久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

JAVA_基礎(chǔ)邏輯運(yùn)算符與位運(yùn)算符使用

 怡紅公子0526 2021-06-21

邏輯運(yùn)算符

  • &-----邏輯與| ----- 邏輯或! ----- 邏輯非
  • &&-----短路與|| ----- 斷路或^ ----- 邏輯異或
a b a & b a && b a | b a || b !a a ^ b
true true true true true true false false
true false false false true true false true
false true false false true true true true
false false false false false false true false
  • 區(qū)分 &&&

    • 相同點(diǎn)1:&&& 的運(yùn)算結(jié)果相同
    • 相同點(diǎn)2:當(dāng)符號左邊是true時,,二者都會執(zhí)行符號右邊的運(yùn)算
    • 不同點(diǎn):當(dāng)符號左邊是false時,&繼續(xù)執(zhí)行符號右邊的運(yùn)算,。而&&不再執(zhí)行符號右邊的
  • 區(qū)分 |||

    • 相同點(diǎn)1:||| 的結(jié)果相同
    • 形同點(diǎn)2:當(dāng)符號左邊是false時,,二者都會執(zhí)行后面的操作
    • 不同點(diǎn):當(dāng)符號左邊時true時,|繼續(xù)執(zhí)行符號右邊的運(yùn)算,,而 ||不在執(zhí)行符號右邊的操作

位運(yùn)算符

位運(yùn)算符操作的都是整型的數(shù)據(jù),。

位運(yùn)算符是直接對整數(shù)的二進(jìn)制進(jìn)行計算。

運(yùn)算符 運(yùn)算 范例
<< 左移 3 << 2 = 12 ( 3 * 2 * 2 = 12 )
>> 右移 3 >> 1 = 1 ( 3 / 2 = 1 )
>>> 無符號右移 3 >>> 1 = 1 ( 3 / 2 = 1 )
& 與運(yùn)算 6 & 3 = 2
| 或運(yùn)算 6 | 3 = 7
^ 異或運(yùn)算 6 ^ 3 = 5
~ 取反運(yùn)算 ~ 6 = -7
  • 注意:沒有<<<無符號左移
位運(yùn)算符的細(xì)節(jié)
<< 空位補(bǔ)0,,被移除的高位丟棄,,空缺位補(bǔ)0。
>> 被移位的二進(jìn)制最高位是0,,右移后,,空缺位補(bǔ)0;最高位如果是1,,則空缺位補(bǔ)1,。
>>> 被移位二進(jìn)制最高位無論是0或者是1,空缺位都補(bǔ)0,。
& 二進(jìn)制位進(jìn)行&運(yùn)算,,只有1 & 1時結(jié)果是1,否則是0,。
| 二進(jìn)制位進(jìn)行|運(yùn)算,,只有0|0時結(jié)果是0,否則是1,。
^ 相同二進(jìn)制位進(jìn)行^運(yùn)算,,結(jié)果是0;( 1 ^ 1 = 0, 0 ^ 0 = 0 )
不相同二進(jìn)制位^運(yùn)算結(jié)果是1,。( 1 ^ 0 = 1, 0 ^ 1 = 1 )
~ 正數(shù)取反,,各二進(jìn)制碼按補(bǔ)碼各位取反
負(fù)數(shù)取反,,各二進(jìn)制碼按補(bǔ)碼各位取反

<< :在一定范圍內(nèi),每項(xiàng)左移1位,,相當(dāng)于 * 2

>>: 在一定范圍內(nèi),,每項(xiàng)右移1位,相當(dāng)于 / 2

public class BitTest {
    public static void main(String[] args) {
        int i = 21;
        int j = -21;
        System.out.println(" j << 2 = " + ( j << 2 ));  // -21 * 2 * 2 = -84
        System.out.println(" i << 2 = " + ( i << 2 ));  // 21 * 2 * 2 = 84
        System.out.println(" i << 3 = " + ( i << 3 ));  // 21 * 2 * 2 * 2 = 168

        System.out.println(" j >> 2 = " + ( j >> 2 ));  // -21 / 2 / 2 = -6
        System.out.println(" i >> 2 = " + ( i >> 2 ));  // 21 / 2 / 2 = 5
        System.out.println(" i >> 3 = " + ( i >> 3 ));  // 21 / 2 / 2 / 2 = 2

        int m = 12;
        int n = 5;
        System.out.println(" m & n = " + ( m & n ));    // 4
        System.out.println(" m | n = " + ( m | n ));    // 13
        System.out.println(" m ^ n = " + ( m ^ n ));    // 9
    }
}

數(shù)值之間的交換:

   //  交換兩個變量的值
        int num1 = 10;
        int num2 = 20;
        System.out.println(" num1 = " + num1 + " ,num2 = " + num2);

        //  方法一:推薦以定義臨時變量的方式進(jìn)行交換
        //  好處:適用于多種類型
        int temp = num1;
        num1 = num2;
        num2 = temp;
        System.out.println(" num1 = " + num1 + " ,num2 = " + num2);

        // 方法二:
        // 好處:不用定義臨時變量
        // 弊端:①相加操作可能超出存儲范圍②有局限性:只針對數(shù)值類型
        int num3 = 10;
        int num4 = 20;
        num3 = num3 + num4; // num3 = 30;
        num4 = num3 - num4; // num4 = 10;
        num3 = num3 - num4; // num3 = 20;

        System.out.println(" num3 = " + num3 + " ,num4 = " + num4);

        // 方法三:實(shí)用位運(yùn)算符
        // 好處:不用定義臨時變量
        // 弊端:有局限性:只針對數(shù)值類型
        int num5 = 10;
        int num6 = 20;
        num5 = num5 ^ num6;
        num6 = num5 ^ num6;
        num5 = num5 ^ num6;
        System.out.println(" num5 = " + num5 + " ,num6 = " + num6);

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多