成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

《Java架構(gòu)筑基》從Java基礎(chǔ)講起——Java運(yùn)算符-創(chuàng)新互聯(lián)

1. 有哪些運(yùn)算符

Java提供了豐富的運(yùn)算符,可以將之分為四種:算術(shù)運(yùn)算符、位運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、三臺(tái)網(wǎng)站維護(hù)、網(wǎng)站推廣。

2. 算術(shù)運(yùn)算符

算術(shù)運(yùn)算符的操作對(duì)象必須是數(shù)值類型,不能為boolean類型使用算術(shù)運(yùn)算符,但是可以為char類型使用算術(shù)運(yùn)算符。因?yàn)樵贘ava中,char類型在本質(zhì)上是int的子集。 |運(yùn)算符|含義| |:--:|:--:| |+|加法(也是一元加號(hào))| |-|減法(也是一元減號(hào))| ||乘法| |/|除法| |%|求模| |++|自增| |- -|自減| |+=|加并賦值| |-=|減并賦值| |=|乘并賦值| |/=|除并賦值| |%=|求模并賦值|

3. 位運(yùn)算符

Java定義了幾個(gè)位運(yùn)算符,可用于整數(shù)類型——long,int,short,char和byte。 |運(yùn)算符|含義| |:--:|:--:| |~|按位一元取反| |&|按位與| |||按位或| |^|按位異或| |>>|右移| |>>>|右移零填充| |<<|左移| |&=|按位與并賦值| | |= |按位或并賦值| |^=|按位異或并賦值| |>>=|右移并賦值| |>>>=|右移零填充并賦值| |<<=|左移并賦值|

在Java中,所有整數(shù)類型都由寬度可變的二進(jìn)制數(shù)字表示,除char類型外都是有符號(hào)整數(shù),這意味著它們即可表示正數(shù),也可以表示負(fù)數(shù)。

Java中使用“2的補(bǔ)碼”進(jìn)行編碼,即負(fù)數(shù)的表示方法為:首先反轉(zhuǎn)數(shù)值中的所有位(1變?yōu)?,0變?yōu)?),然后再將結(jié)果加1。例如,-42的表示方法為:通過反轉(zhuǎn)42中的所有位(00101010),得到11010101,然后再加1,得到11010110,即-42。 為了解碼負(fù)數(shù),首先反轉(zhuǎn)所有位,然后加1。例如,反轉(zhuǎn)-42(11010110),得到00101001,即41,再加一則得到42。

3.1 位邏輯運(yùn)算符

位邏輯運(yùn)算符包括&、|、^和~。

  • 運(yùn)算規(guī)則如下表所示 |A|B|A|B|A&B|A^B|~A |:--:|:--:|:--:|:--:|:--:|:--:| |0|0|0|0|0|1| |1|0|1|0|1|0| |0|1|1|0|1|1| |1|1|1|1|0|0|

3.2 左移

左移運(yùn)算符“<<”可以將數(shù)值中的所有位向左移動(dòng)指定的次數(shù),格式為:

value << num
  • num指定了將value中的值向左移動(dòng)的次數(shù),對(duì)于高階位,每次左移都被移出并丟失,右邊的位用0補(bǔ)充。這意味著左移int類型操作數(shù)時(shí),如果某些位一旦超出31位,那么這些位將丟失。如果操作數(shù)是long類型,那么超出位63的位會(huì)丟失。
  • 當(dāng)左移byte和short型數(shù)據(jù)時(shí),Java的自動(dòng)類型提升會(huì)導(dǎo)致意外的結(jié)果。當(dāng)對(duì)表達(dá)式進(jìn)行求值時(shí),byte和short型數(shù)值會(huì)被提升為int類型,且表達(dá)式的結(jié)果也是int型。
  • 這意味著對(duì)byte和short型數(shù)值進(jìn)行左移操作的結(jié)果為int型,若移動(dòng)的位數(shù)不超出位31,則移動(dòng)的位不會(huì)丟失。此外,當(dāng)將負(fù)的byte和short型數(shù)值提升為int型時(shí),會(huì)進(jìn)行符號(hào)擴(kuò)展,因此高階位將使用1填充。
  • 例如,如果左移byte型數(shù)值,會(huì)先將該數(shù)值提升為int型,然后左移。這意味著如果想要的結(jié)果是移位后的byte型數(shù)值,就必須丟棄結(jié)果的前三個(gè)字節(jié),可以通過將結(jié)果強(qiáng)制轉(zhuǎn)換為byte類型來完成位數(shù)截取。

舉個(gè)例子:

public static void main(String[] args) {
    public static void main(String[] args) {
        //0011 1100
        byte a = 60;
        // a首先被提升為int類型,即(0000 0000 0000 0000 0000 0000 0011 1100)
        // 左移兩位,結(jié)果為(0000 0000 0000 0000 0000 0000 1111 0000),即240
        int i = a << 2;
        // 先左移兩位,結(jié)果為(0000 0000 0000 0000 0000 0011 1100 0000)
        // 舍棄前三個(gè)字節(jié),得到(1100 0000),即-64
        byte b = (byte) (i << 2);
        System.out.println("i等于:" + i);
        System.out.println("b等于:" + b);
    }
}

輸出結(jié)果是:

i等于:240
b等于:-64

因?yàn)槊看巫笠贫枷喈?dāng)于將原始值乘2,所以可以將之作為乘法的搞笑替代方法。但是如果將二進(jìn)制1移進(jìn)高階位,結(jié)果將會(huì)變成負(fù)數(shù)。

3.3 右移

右移的規(guī)則與左移類似,實(shí)例代碼如下:

public static void main(String[] args) {
    //0011 1100
    byte a = 60;  
    // a首先被提升為int類型,即(0000 0000 0000 0000 0000 0000 0011 1100)
    // 右移兩位,結(jié)果為(0000 0000 0000 0000 0000 0000 0000 1111),即15
    int i = a >> 2;
    // 先右移兩位,結(jié)果為(0000 0000 0000 0000 0000 0000 0000 0011)
    // 舍棄前三個(gè)字節(jié),得到(0000 0011),即3
    byte b = (byte) (i >> 2);
    System.out.println("i等于:" + i);
    System.out.println("b等于:" + b);
}

執(zhí)行結(jié)果

i等于:15
b等于:3

每次右移一位,相當(dāng)于將該值除以2,并舍棄所有余數(shù)??梢岳眠@一特性實(shí)現(xiàn)高效的除法操作。

  • 當(dāng)進(jìn)行右移操作時(shí),右移后的頂部(最左邊)位使用右移前頂部為使用的值填充,這稱為符號(hào)擴(kuò)展。當(dāng)對(duì)負(fù)數(shù)進(jìn)行右移操作時(shí),該特性可以保留負(fù)數(shù)的符號(hào)。
    public static void main(String[] args) {
    byte a=(byte) 0b11111000;
    System.out.println("a等于:"+a);
    int b=a>>1;
    System.out.println("b等于:"+b);
    }

    執(zhí)行結(jié)果

    a等于:-8
    b等于:-4

3.4 無符號(hào)右移

每次移位時(shí),“>>”運(yùn)算符自動(dòng)使用原來的內(nèi)容填充高階位,這個(gè)特性可以保持?jǐn)?shù)值的正負(fù)性。但是,有時(shí)候?qū)δ切┓菙?shù)值的內(nèi)容進(jìn)行移位操作,并不關(guān)心高階位初始值是多少,只希望用0來填充高階位,這就是無符號(hào)右移。

  • 為了完成無符號(hào)右移,需要使用Java的無符號(hào)右移運(yùn)算符“>>>”,該運(yùn)算符總是將0移進(jìn)高階位。
    public static void main(String[] args) {
    //二進(jìn)制表示(11111111 11111111 11111111 11111111)
    int a=-1;
    System.out.println(a);
    //右移二十四位(00000000 00000000 00000000 11111111)
    a=a>>>24;
    //輸出結(jié)果是 255
    System.out.println(a); 
    }

4. 關(guān)系運(yùn)算符

關(guān)系運(yùn)算符用于判定一個(gè)操作數(shù)與另一個(gè)操作數(shù)之間的關(guān)系。 |運(yùn)算符|結(jié)果| |:--:|:--:| |==|等于| |!=|不等于| |>|大于| |<|小于| |>=|大于等于| |<=|小于等于|

5. 邏輯運(yùn)算符

關(guān)系運(yùn)算符用于判定一個(gè)操作數(shù)與另一個(gè)操作數(shù)之間的關(guān)系。 |運(yùn)算符|結(jié)果| |:--:|:--:| |&|邏輯與| |||邏輯或| |^|邏輯異或| ||||短路或| |&&|短路與| |!|邏輯一元非| |&=|邏輯與并賦值| ||=|邏輯或并賦值| |^=|邏輯異或并賦值| |==|等于| |!=|不等于| |?:|三元運(yùn)算符|

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。

標(biāo)題名稱:《Java架構(gòu)筑基》從Java基礎(chǔ)講起——Java運(yùn)算符-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article34/ddespe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)網(wǎng)站設(shè)計(jì)、搜索引擎優(yōu)化、標(biāo)簽優(yōu)化、微信小程序靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
石家庄市| 芮城县| 台北市| 武山县| 兴城市| 白山市| 彰武县| 监利县| 武邑县| 南京市| 公主岭市| 灯塔市| 泰安市| 靖西县| 贵州省| 志丹县| 永州市| 中江县| 昌都县| 长沙市| 镇平县| 汤原县| 察雅县| 仪陇县| 宜阳县| 班戈县| 凭祥市| 河北区| 太仓市| 囊谦县| 商河县| 镇宁| 巴中市| 安塞县| 宁夏| 额济纳旗| 望谟县| 吴堡县| 买车| 社会| 邯郸市|