最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的位運(yùn)算符全解

 更新時(shí)間:2022年03月02日 15:50:05   作者:小小茶花女  
這篇文章主要為大家詳細(xì)介紹了Java中的位運(yùn)算符,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

1. &(按位與運(yùn)算符)

&按位與的運(yùn)算規(guī)則是將兩邊的數(shù)轉(zhuǎn)換為二進(jìn)制位,然后運(yùn)算最終值,運(yùn)算規(guī)則即(兩個(gè)為真才為真):1&1=1 , 1&0=0 , 0&1=0 , 0&0=0

public class Main {
    public static void main(String[] args) {
        // &按位與,運(yùn)算符兩邊的條件值會(huì)先轉(zhuǎn)換為2進(jìn)制,然后再比對(duì)運(yùn)算
        /**
         *   0 0 1 1  
         *   0 1 0 1
         *  ----------- 
         *   0 0 0 1
         */
        int a = 3&5;
        /**
         *   0 0 0 1
         *   0 0 1 0
         *  ----------- 
         *   0 0 0 0
         */
        int b = 1&2;
        System.out.println(a);// 1
        System.out.println(b);// 0
    }
}

2. |(按位或運(yùn)算符)

|按位或和&按位與計(jì)算方式都是轉(zhuǎn)換二進(jìn)制再計(jì)算,不同的是運(yùn)算規(guī)則(一個(gè)為真即為真):1|0 = 1 , 1|1 = 1 , 0|0 = 0 , 0|1 = 1

public class Main {
    public static void main(String[] args) {
        // |按位或,運(yùn)算符兩邊的條件值會(huì)先轉(zhuǎn)換為2進(jìn)制,然后再比對(duì)運(yùn)算
        /**
         *   0 0 1 1
         *   0 1 0 1
         *  -------------
         *   0 1 1 1
         */
        int a = 3|5;
        /**
         *   0 0 0 1
         *   0 0 1 0
         *  -------------
         *   0 0 1 1
         */
        int b = 1|2;
        System.out.println(a);// 7
        System.out.println(b);// 3
    }
}

3. ^(異或運(yùn)算符)

^異或運(yùn)算符顧名思義,異就是不同,其運(yùn)算規(guī)則為1^0 = 1 , 1^1 = 0 , 0^1 = 1 , 0^0 = 0

public class Main {
    public static void main(String[] args) {
        /**
         *   0 0 1 1
         *   0 1 0 1
         *  -------------
         *   0 1 1 0
         */
        int a = 3^5;
        /**
         *   0 0 0 1
         *   0 0 1 0
         *  -------------
         *   0 0 1 1
         */
        int b = 1^2;
        System.out.println(a);// 6
        System.out.println(b);// 3
    }
}

4. <<(左移運(yùn)算符)

5<<2的意思為5的二進(jìn)制位往左挪兩位,右邊補(bǔ)0

5的二進(jìn)制位是0000 0101 , 就是把有效值101往左挪兩位就是0001 0100 ,正數(shù)左邊第一位補(bǔ)0,負(fù)數(shù)補(bǔ)1,等于乘于2的n次方,十進(jìn)制位是5*2^2=20

public class Main {
    public static void main(String[] args) {
        /**
         * 5<<2的意思為5的二進(jìn)制位往左挪兩位,右邊補(bǔ)0
         *  0 0 0 0 0 1 0 1
         *  0 0 0 1 0 1 0 0
         */
        System.out.println(5<<2); // 20
    }
}

5. >> (右移移運(yùn)算符)

凡位運(yùn)算符都是把值先轉(zhuǎn)換成二進(jìn)制再進(jìn)行后續(xù)的處理

5的二進(jìn)制位是0000 0101,右移兩位就是把101左移后為0000 0001,正數(shù)左邊第一位補(bǔ)0,負(fù)數(shù)補(bǔ)1,等于除于2的n次方,結(jié)果為1

public class Main {
    public static void main(String[] args) {
        /**
         * 5>>2的意思為5的二進(jìn)制位往右挪兩位,左邊補(bǔ)0
         *  0 0 0 0 0 1 0 1
         *  0 0 0 0 0 0 0 1
         */
        System.out.println(5<<2); // 1
    }
}

6. ~(取反運(yùn)算符)

取反就是1為0,0為1

5的二進(jìn)制位是0000 0101,取反后為1111 1010,值為-6

public class Main {
    public static void main(String[] args) {
        /**
         *     0 0 0 0 0 1 0 1
         *   ---------------------  
         *     1 1 1 1 1 0 1 0
         *  
         *  1、如果 11111010 想轉(zhuǎn)為負(fù)的十進(jìn)制,因?yàn)樽罡呶皇?,所以先將11111001減1得到11111001
         *  2、取反 00010101,然后計(jì)算出 00000100 對(duì)應(yīng)的十進(jìn)制為6
         *  3、所以 11111010 最終對(duì)應(yīng)的十進(jìn)制為 -6
         *  
         *     1 1 1 1 1 0 1 0
         *   - 0 0 0 0 0 0 0 1
         *   ---------------------
         *     1 1 1 1 1 0 0 1
         *   ---------------------
         *     0 0 0 0 0 1 0 0
         */
        System.out.println(~5); // -6
    }
}

7. >>>(無(wú)符號(hào)右移運(yùn)算符)

(1) 正數(shù)無(wú)符號(hào)右移

無(wú)符號(hào)右移運(yùn)算符和右移運(yùn)算符的主要區(qū)別在于負(fù)數(shù)的計(jì)算,因?yàn)闊o(wú)符號(hào)右移是高位補(bǔ)0,移多少位補(bǔ)多少個(gè)0。

15的二進(jìn)制位是0000 1111 , 右移2位0000 0011,結(jié)果為3

public class Main {
    public static void main(String[] args) {
        /**
         *     0000 1111
         *   --------------- 
         *     0000 0011
         */
        System.out.println(15>>>2); // 3
    }
}

(2) 負(fù)數(shù)無(wú)符號(hào)右移

-6的二進(jìn)制是6的二進(jìn)制取反再加1,6的二進(jìn)制也就是0000 0000 0000 0000 0000 0000 0000 0110,取反后加1為1111 1111 1111 1111 1111 1111 1111 1010,右移三位0001 1111 1111 1111 1111 1111 1111 1111

public class Main {
    public static void main(String[] args) {
        System.out.println(-6>>>3); // 536870911
    }
}

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容! 

相關(guān)文章

  • 如何用ObjectMapper將復(fù)雜Map轉(zhuǎn)換為實(shí)體類

    如何用ObjectMapper將復(fù)雜Map轉(zhuǎn)換為實(shí)體類

    這篇文章主要介紹了如何用ObjectMapper將復(fù)雜Map轉(zhuǎn)換為實(shí)體類的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • MyBatis插件機(jī)制超詳細(xì)講解

    MyBatis插件機(jī)制超詳細(xì)講解

    MyBatis在四大對(duì)象的創(chuàng)建過程中,都會(huì)有插件進(jìn)行介入。插件可以利用動(dòng)態(tài)代理機(jī)制一層層的包裝目標(biāo)對(duì)象,而實(shí)現(xiàn)在目標(biāo)對(duì)象執(zhí)行目標(biāo)方法之前進(jìn)行攔截的效果
    2022-11-11
  • Java 使用 FFmpeg 處理視頻文件示例代碼詳解

    Java 使用 FFmpeg 處理視頻文件示例代碼詳解

    這篇文章主要介紹了Java 使用 FFmpeg 處理視頻文件示例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • ShardingSphere jdbc實(shí)現(xiàn)分庫(kù)分表核心概念詳解

    ShardingSphere jdbc實(shí)現(xiàn)分庫(kù)分表核心概念詳解

    這篇文章主要為大家介紹了ShardingSphere jdbc實(shí)現(xiàn)分庫(kù)分表核心概念詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 兩萬(wàn)字詳解Java Sring String的常見操作以及StringBuffer StringBuilder的區(qū)別

    兩萬(wàn)字詳解Java Sring String的常見操作以及StringBuffer StringBuilder的區(qū)別

    本篇文章帶你認(rèn)識(shí)Sring、String的常見操作和StringBuffer 與StringBuilder的區(qū)別(字符串詳解),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Java實(shí)現(xiàn)手寫一個(gè)線程池的示例代碼

    Java實(shí)現(xiàn)手寫一個(gè)線程池的示例代碼

    線程池技術(shù)想必大家都不陌生把,相信在平時(shí)的工作中沒有少用,而且這也是面試頻率非常高的一個(gè)知識(shí)點(diǎn),那么大家知道它的實(shí)現(xiàn)原理和細(xì)節(jié)嗎?本文就來(lái)通過手寫一個(gè)簡(jiǎn)單的線程池框架,去掌握線程池的基本原理,感興趣的可以學(xué)習(xí)一下
    2022-10-10
  • Sentinel中三種流控模式的使用詳解

    Sentinel中三種流控模式的使用詳解

    這篇文章主要為大家詳細(xì)介紹了Sentinel中三種流控模式(預(yù)熱模式,排隊(duì)等待模式和熱點(diǎn)規(guī)則)的使用,文中的示例代碼講解詳細(xì),感興趣的可以了解下
    2023-08-08
  • Java?Spring?boot日期和時(shí)間統(tǒng)一設(shè)置三種方法

    Java?Spring?boot日期和時(shí)間統(tǒng)一設(shè)置三種方法

    時(shí)間和日期的統(tǒng)一設(shè)置在項(xiàng)目中經(jīng)常是會(huì)遇到的,下面這篇文章主要給大家介紹了關(guān)于Java?Spring?boot日期和時(shí)間統(tǒng)一設(shè)置的三種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • 淺析Java中JNI靜態(tài)注冊(cè)和動(dòng)態(tài)注冊(cè)

    淺析Java中JNI靜態(tài)注冊(cè)和動(dòng)態(tài)注冊(cè)

    這篇文章主要為大家詳細(xì)介紹了Java中JNI靜態(tài)注冊(cè)和動(dòng)態(tài)注冊(cè)的相關(guān)知識(shí),文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • Springboot之@Controller注解不生效問題及解決

    Springboot之@Controller注解不生效問題及解決

    這篇文章主要介紹了Springboot之@Controller注解不生效問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評(píng)論

儋州市| 岳普湖县| 广安市| 阳山县| 延庆县| 汤原县| 辛集市| 翁牛特旗| 双城市| 清水县| 玉山县| 平和县| 定远县| 德兴市| 云和县| 花莲市| 象山县| 泾阳县| 荆门市| 东城区| 高要市| 漳州市| 泰兴市| 兰溪市| 札达县| 华池县| 池州市| 桃江县| 米泉市| 沁源县| 疏附县| 白水县| 西林县| 神池县| 南皮县| 潍坊市| 文昌市| 大石桥市| 海口市| 遂溪县| 伊吾县|