亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Java 無符號右移與右移運(yùn)算符的使用介紹

瀏覽:3日期:2022-08-30 15:09:49

Java 無符號右移介紹

最近學(xué)習(xí)Java,看到>>>運(yùn)算符不太了解,也百度查了查,解釋得不是很清晰。那么下面講解我對>>>運(yùn)算符的認(rèn)識: >>>運(yùn)算符:無符號右移運(yùn)算符 在學(xué)習(xí)>>>無符號右移運(yùn)算符前,我們先了解右移運(yùn)算符>>

下表列出了位運(yùn)算符的基本運(yùn)算,假設(shè)整數(shù)變量A的值為60和變量B的值為13:

操作符 描述 例子 & 如果相對應(yīng)位都是1,則結(jié)果為1,否則為0 (A&B),得到12,即0000 1100 | 如果相對應(yīng)位都是0,則結(jié)果為0,否則為1 (A | B)得到61,即 0011 1101 ^ 如果相對應(yīng)位值相同,則結(jié)果為0,否則為1 (A ^ B)得到49,即 0011 0001 〜 按位取反運(yùn)算符翻轉(zhuǎn)操作數(shù)的每一位,即0變成1,1變成0。 (〜A)得到-61,即1100 0011 << 按位左移運(yùn)算符。左操作數(shù)按位左移右操作數(shù)指定的位數(shù)。 A << 2得到240,即 1111 0000 >> 按位右移運(yùn)算符。左操作數(shù)按位右移右操作數(shù)指定的位數(shù)。 A >> 2得到15即 1111 >>> 按位右移補(bǔ)零操作符。左操作數(shù)的值按右操作數(shù)指定的位數(shù)右移,移動得到的空位以零填充。 A>>>2得到15即0000 1111

右移運(yùn)算符

>>右移運(yùn)算符:正數(shù)高位補(bǔ)0,負(fù)數(shù)高位補(bǔ)1

看一個例子:

public static void main(String[] args) { /** * 10的二進(jìn)制:1010 * 因?yàn)槭钦龜?shù),所以計(jì)算機(jī)高位的0不會輸出 * 負(fù)數(shù)會輸出32位bit */ System.out.println(Integer.toBinaryString(10 >> 2)); System.out.println(Integer.toBinaryString(-10)); System.out.println(Integer.toBinaryString(-10 >> 2)); }

輸出:

Java 無符號右移與右移運(yùn)算符的使用介紹

計(jì)算機(jī)計(jì)算數(shù)據(jù)以補(bǔ)碼的方式進(jìn)行計(jì)算正數(shù)原碼、反碼、補(bǔ)碼不變負(fù)數(shù)(-10):以8bit(位)表示原碼----> 1000 1010反碼----> 1111 0101(符號位不變,其他位取反)補(bǔ)碼----> 1111 0110(反碼基礎(chǔ)上 + 1)所以會 -10 會輸出:1111…0110-10 >> 2 :1111…1101(高位補(bǔ)1)10 >> 2:0000…0010

無符號右移運(yùn)算符

>>> 無符號右移運(yùn)算符與 >> 右移運(yùn)算符的正數(shù)相同,只不過關(guān)鍵在于負(fù)數(shù)的不同,>>>運(yùn)算符右移:**負(fù)數(shù)高位補(bǔ) 0 ,其它位不變**

看一個例子:

public static void main(String[] args) { System.out.println(Integer.toBinaryString(10 >>> 2)); System.out.println(Integer.toBinaryString(-10)); System.out.println(Integer.toBinaryString(-10 >>> 2)); }

輸出:(注意和以上例子比較)

Java 無符號右移與右移運(yùn)算符的使用介紹

解釋

Java 無符號右移與右移運(yùn)算符的使用介紹

總結(jié):>>> 和 >> 的區(qū)別在于:

>>> 負(fù)數(shù)高位補(bǔ) 0; >> 負(fù)數(shù)高位補(bǔ)1;

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

左移的規(guī)則只記住一點(diǎn):該數(shù)對應(yīng)的二進(jìn)制碼補(bǔ)碼整體左移,丟棄最高位,0補(bǔ)最低位

如果移動的位數(shù)超過了該類型的最大位數(shù),那么編譯器會對移動的位數(shù)取模。如對int型移動33位,實(shí)際上只移動了33%32=1位;

當(dāng)左移的運(yùn)算數(shù)是int 類型時,每移動1位它的第31位(0~31)就要被移出并且丟棄;當(dāng)左移的運(yùn)算數(shù)是long 類型時,每移動1位它的第63(0~63)位就要被移出并且丟棄。當(dāng)左移的運(yùn)算數(shù)是byte 和short類型時,將自動把這些類型擴(kuò)大為 int 型。

正數(shù)和負(fù)數(shù)的左移操作分兩種情況:

(1)左移n位(1<=n<=31)之后操作數(shù)沒有溢出

這種情況等價于===原操作*2^n,例如60的二進(jìn)制補(bǔ)碼是 111100=2^5+2^4+2^3+2^2=60

60左移25位之后的二進(jìn)制補(bǔ)碼為:01111000000000000000000000000000 =(2^5+2^4+2^3+2^2)*2^25=2^30+2^29+2^28+2^27

而int類型占四個字節(jié),一共三十二位,第一位是符號位,int類型的數(shù)值范圍是(-2^31~2^31-1)所以60左移25位操作數(shù)沒有溢出,最高位還是0;

(2)左移n位(1<=n<=31)之后操作數(shù)溢出

但如果再向左移動一位的話,即60左移26位之后的二進(jìn)制補(bǔ)碼為:

11110000000000000000000000000000 =(2^5+2^4+2^3+2^2)*2^26=2^31+2^30+2^29+2^28

此時二進(jìn)制最高位是1,操作數(shù)溢出,變成負(fù)數(shù)。

60移位前二進(jìn)制(補(bǔ)碼表示):111100 60-60移位前二進(jìn)制(補(bǔ)碼表示):11111111111111111111111111000100 -60 左移的規(guī)則只記住一點(diǎn):丟棄最高位,0補(bǔ)最低位60左移1位的二進(jìn)制(補(bǔ)碼表示):1111000 12060左移25位的二進(jìn)制(補(bǔ)碼表示):1111000000000000000000000000000 201326592060左移26位的二進(jìn)制(補(bǔ)碼表示):11110000000000000000000000000000 -26843545660左移30位的二進(jìn)制(補(bǔ)碼表示):0 0-60左移1位的二進(jìn)制(補(bǔ)碼表示):11111111111111111111111110001000 -120-60左移25位的二進(jìn)制(補(bǔ)碼表示):10001000000000000000000000000000 -2013265920-60左移26位的二進(jìn)制(補(bǔ)碼表示):10000000000000000000000000000 268435456-60左移32位的二進(jìn)制(補(bǔ)碼表示):11111111111111111111111111000100 -60

到此這篇關(guān)于Java 無符號右移與右移運(yùn)算符的使用介紹的文章就介紹到這了,更多相關(guān)Java 無符號右移與右移運(yùn)算符內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 日韩精品在线一区二区 | 999精品视频 | 色伊人色成人婷婷六月丁香 | 久久精品中文 | 久久www香蕉免费人成 | 久久久久久久国产免费看 | 日本护士xxxxx极品 | 黄色影院免费 | 黄色小视频免费观看 | 国产成人精品女人不卡在线 | 黄色香蕉视频 | 久久麻豆亚洲精品 | 国内一级片| 在线亚洲色图 | 国产精品久久久久影院色 | 久久不卡精品 | 丝袜美腿国产精品视频一区 | 亚洲最大的黄色网址 | 欧美大片毛片aaa免费看 | 亚洲精品自拍 | 在线高清性色生活片免费观看 | 久久国产亚洲高清观看5388 | 国产免费福利视频一区二区 | 男女生性毛片免费观看 | 欧美性视频在线激情 | 色综合久久中文色婷婷 | 91制服丝袜 | 欧美三级在线播放 | 全色黄大色大片免费久久老太 | 4k岛国精品午夜高清在线观看 | 国产精品久久国产精品99 gif | 亚洲国产综合人成综合网站00 | 九九99| 成年美女xx网站高清视频 | 曰批免费视频播放在线看片二 | 四虎884aa永久播放地址http | 丝袜美腿亚洲综合 | 欧美一级视频免费看 | 精品不卡| 免费播放欧美毛片欧美a | 国产乱人视频免费播放 |