内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Java的位運(yùn)算(bitwiseoperators)-創(chuàng)新互聯(lián)

Java的位運(yùn)算(bitwise operators)直接對(duì)整數(shù)類型的位進(jìn)行操作,這些整數(shù)類型包括long、int、short、char和 byte,位運(yùn)算符具體如下表:Java的位運(yùn)算(bitwise operators)

路南ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

左移位(<<)?

程序:

public class LeftMoving{

? public static void main(String[] args){

?System.out.println("5<<3="+(5<<3));

? }

}

輸出結(jié)果:?

5<<3=40?

計(jì)算過程:?

0000 0000 0000 0000 0000 0000 0000 0101 ? 5?

0000 0000 0000 0000 0000 0000 0010 1000 ? 40

右移位(>>)?

正數(shù)?

程序:

public class PlusRightMoving{

? public static void main(String[] args){

?System.out.println("5>>1="+(5>>1));

? }

}

輸出結(jié)果:?

5>>1=2?

計(jì)算過程:?

0000 0000 0000 0000 0000 0000 0000 0101 ? 5?

0000 0000 0000 0000 0000 0000 0000 0010 ? 2

負(fù)數(shù)?

程序:

public class NegativeRightMoving{

? public static void main(String[] args){

?System.out.println("-5>>1="+(-5>>1));

? }

}

輸出結(jié)果:?

-5>>1=-3?

計(jì)算過程:?

1111 1111 1111 1111 1111 1111 1111 1011 ? -5?

1111 1111 1111 1111 1111 1111 1111 1101 ? -3

無符號(hào)右移位(>>>)?

程序:

public class UnsignedRightMoving{

? public static void main(String[] args){

? System.out.println("-5>>>1="+(-5>>>1));

? }

}

輸出結(jié)果:?

-5>>>1=2147483645?

計(jì)算過程:?

1111 1111 1111 1111 1111 1111 1111 1011 ? -5?

0111 1111 1111 1111 1111 1111 1111 1101 ? 2147483645

補(bǔ)充個(gè)Java中的基本數(shù)據(jù)類型的相關(guān)知識(shí)。

Java的位運(yùn)算(bitwise operators)

這里包括了float和double兩個(gè)浮點(diǎn)型,在本文中對(duì)其不予考慮,因?yàn)槲贿\(yùn)算是針對(duì)整型的。進(jìn)行位操作時(shí),除long型外,其他類型會(huì)自動(dòng)轉(zhuǎn)成int型,轉(zhuǎn)換之后,可接受右操作數(shù)長(zhǎng)度為32。進(jìn)行位運(yùn)算時(shí),總是先將短整型和字節(jié)型值轉(zhuǎn)換成整型值再進(jìn)行移位操作的。?

程序:

public class ByteLeftMoving{??

public static void main(String[] args){??

? byte b = 127;??

? System.out.println("b<<3="+(b<<3));??

? System.out.println("(byte)(b<<3)="+(byte)(b<<3));??

? }??

}??

輸出結(jié)果:?

b<<3=1016?

(byte)(b<<3)=-8

程序:

public class CharLeftMoving{??

public static void main(String[] args){??

? char c = 'l';??

? System.out.println("c<<3="+(c<<3));??

? System.out.println("(char)(c<<3)="+(char)(c<<3));? ?

? }??

}??

輸出結(jié)果:?

c<<3=864?

(char)(c<<3)=?

以上兩個(gè)例子全部編譯通過,由此可以看出,當(dāng)byte和char進(jìn)行移位運(yùn)算時(shí)不會(huì)發(fā)生錯(cuò)誤,并且均按照整型進(jìn)行計(jì)算,當(dāng)計(jì)算結(jié)果超出byte或是char所能表示的范圍時(shí)則進(jìn)行相應(yīng)的轉(zhuǎn)換(分別輸出了結(jié)果-8和?)。

位運(yùn)算中的操作數(shù)?

在進(jìn)行移位運(yùn)算時(shí)要注意整型和長(zhǎng)整型在內(nèi)存中的位數(shù)(整型是32位,長(zhǎng)整型是64位),如果移位操作數(shù)超出了該位數(shù)則取模計(jì)算,例如:int型數(shù)據(jù)是32位的,如果左移35位是什么結(jié)果??

程序:

public class LeftMoving{??

? public static void main(String[] args){??

?System.out.println("5<<35="+(5<<35));??

? }??

}??

輸出結(jié)果:?

5<<35=40?

該結(jié)果與5<<3完全相同。?

無論正數(shù)、負(fù)數(shù),它們的右移、左移、無符號(hào)右移 32位都是其本身,比如 -5<<32=-5、-5>>32=-5、-5>>>32=-5。?

一個(gè)有趣的現(xiàn)象是,把 1 左移 31 位再右移 31位,其結(jié)果為 -1。?

計(jì)算過程如下:?

0000 0000 0000 0000 0000 0000 0000 0001?

1000 0000 0000 0000 0000 0000 0000 0000?

1111 1111 1111 1111 1111 1111 1111 1111?

位運(yùn)算要求操作數(shù)為整數(shù),操作數(shù)不能是字符串也不能是小數(shù)。?

如下列程序:

public class BitMath{??

? public static void main(String[] args){??

? String s = "Hello";??

? long l = 99;??

? double d = 1.11;??

? int i = 1;??

? int j = 0;??

? System.out.println("j<<s="+j<<s);? ? //編譯錯(cuò)誤語句? ??

? System.out.println("j<<d="+j<<d);? ? //編譯錯(cuò)誤語句??

? System.out.println("i<<j="+i<<j);? ? //編譯可以通過??

? System.out.println("i<<l="+i<<l);? ? //編譯可以通過? ?

? }? ?

}??

由于位運(yùn)算是二進(jìn)制運(yùn)算,不要與一些八進(jìn)制數(shù)搞混,java中二進(jìn)制數(shù)沒有具體的表示方法。

public class BitMath{

? public static void main(String[] args){

? System.out.println("010|4="+(010|4));

? }

}

輸出結(jié)果:?

010|4=12?

計(jì)算過程:?

0000 0000 0000 0000 0000 0000 0000 1000 ?8?

0000 0000 0000 0000 0000 0000 0000 0100 ?4?

進(jìn)行“或”計(jì)算結(jié)果為:?

0000 0000 0000 0000 0000 0000 0000 1100 ?12?

當(dāng)位運(yùn)算中遇見負(fù)數(shù),必須把它轉(zhuǎn)成補(bǔ)碼(不知道什么是補(bǔ)碼的補(bǔ)習(xí)功課去)再進(jìn)行計(jì)算,而不是使用原碼。?

程序:

public class BitMath{

? public static void main(String[] args){

? try {

? int x = -7;

? System.out.println("x>>1="+(x>>1));

? } catch(Exception e) {

? System.out.println("Exception");

? }

? }

}

輸出結(jié)果:?

x>>1=-4?

計(jì)算過程:?

1111 1111 1111 1111 1111 1111 1111 1001 ?-7?

1111 1111 1111 1111 1111 1111 1111 1100 ?-4

public class BitMath{??

? public static void main(String[] args){??

? int i = 1;??

? int j = -1;??

? System.out.println("1>>>31="+(i>>>31));? ?

? System.out.println("-1>>31="+(j>>31));? ??

? }? ?

}??

輸出結(jié)果:?

1>>>31=0?

-1>>31=-1?

程序:

public class BitMath{??

? public static void main(String[] args){? ??

? int a = 1;??

? a <<= 31;??

? a >>= 31;? ?

? a >>= 1;? ? ? ? ??

? System.out.println("a="+a);??

? int b = 1;? ?

? b <<= 31;? ??

? b >>= 31;? ??

? System.out.println("b="+b);? ?

? int c = 1;? ?

? c >>= 31;? ??

? c <<= 31;??

? System.out.println("c="+c);? ??

? }??

}??

輸出結(jié)果:?

a=-1?

b=-1?

c=0?

計(jì)算過程:?

0000 0000 0000 0000 0000 0000 0000 0001 ?a=1?

1000 0000 0000 0000 0000 0000 0000 0000 ?a=a<<31后,這里被當(dāng)作是負(fù)數(shù)?

1111 1111 1111 1111 1111 1111 1111 1111 ?a=a>>31后,結(jié)果為-1?

1111 1111 1111 1111 1111 1111 1111 1111 ?a=a>>1后,結(jié)果仍為-1?

0000 0000 0000 0000 0000 0000 0000 0001 ?c=1?

0000 0000 0000 0000 0000 0000 0000 0000 ?c=c>>31后為0?

0000 0000 0000 0000 0000 0000 0000 0000 ?0左移31位仍為0

創(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ù)器買多久送多久。

網(wǎng)站題目:Java的位運(yùn)算(bitwiseoperators)-創(chuàng)新互聯(lián)
瀏覽地址:http://www.rwnh.cn/article18/ddoodp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、虛擬主機(jī)網(wǎng)站維護(hù)、網(wǎng)站制作、建站公司、營(yíng)銷型網(wǎng)站建設(shè)

廣告

聲明:本網(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)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
南阳市| 汝南县| 日土县| 扎兰屯市| 江川县| 宜州市| 古交市| 社旗县| 阜城县| 宁国市| 鄯善县| 建水县| 祁阳县| 祁东县| 梁河县| 丁青县| 天镇县| 岫岩| 桃源县| 龙胜| 长寿区| 苗栗市| 龙南县| 磐安县| 青铜峡市| 巴青县| 普定县| 塔城市| 沾化县| 天柱县| 堆龙德庆县| 泾源县| 凉城县| 伊川县| 中卫市| 介休市| 夹江县| 江阴市| 襄城县| 隆昌县| 革吉县|