日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 右移两位_java左移右移运算符

發布時間:2024/9/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 右移两位_java左移右移运算符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/dandanteng/article/details/7433531

首先要明白一點,這里面所有的操作都是針對存儲在計算機中中二進制的操作,那么就要知道,正數在計算機中是用二進制表示的,負數在計算機中使用補碼表示的。

左移位:<

左移操作時將運算數的二進制碼整體左移指定位數,左移之后的空位用0補充

右移位:>>,有符號的移位操作

右移操作是將運算數的二進制碼整體右移指定位數,右移之后的空位用符號位補充,如果是正數用0補充,負數用1補充。

例子:

public static void main(String[] args)

{

System.out.println(3<<2);//3左移2位

System.out.println(-3<<2);//-3左移2位

System.out.println(6>>2);//6右移2位

System.out.println(-6>>2);//-6右移2位

}

輸出結果

12

-12

1

-2

下面解釋一下:

00000000 00000000 00000000 00000011 +3在計算機中表示

00000000 00000000 00000000 0000001100 左移2位,補0,結果為12

----------------------------------------------------------------------------------------------

00000000 00000000 00000000 00000011 +3在計算機中表示

11111111 11111111 11111111 11111100

11111111 11111111 11111111 11111101 -3在計算機中表示

11111111 11111111 11111111 1111110100 左移2位,補0,結果為負數,就是補碼了,求原碼

10000000 00000000 00000000 00001011

10000000 00000000 00000000 00001100 結果-12

----------------------------------------------------------------------------------------------

這也說明了一個問題:在計算機中,以1開頭的就是補碼的形式,是負數。

00000000 00000000 00000000 00000110 +6在計算機中表示方法

0000000000 00000000 00000000 00000110 右移兩位,正數補0,結果為1

----------------------------------------------------------------------------------------------

00000000 00000000 00000000 00000110 +6在計算機中表示方法

11111111 11111111 11111111 11111001

11111111 11111111 11111111 11111010 -6在計算機中的表示

1111111111 11111111 11111111 11111010 右移兩位,結果為負數

1000000000 00000000 00000000 000001

1000000000 00000000 00000000 000010 結果為-2

這個地方很容易弄混,多想幾次就會慢慢理解了。

上面解釋了帶符號的移位操作,下面解釋一下不帶符號的移位操作

無符號的移位只有右移,沒有左移使用“>>>”進行移位,都補充0

例如:

public static void main(String[] args)

{

System.out.println(6>>>2);

System.out.println(-6>>>2);

}

結果:

1

1073741822

分析:

00000000 00000000 00000000 00000110 +6在計算機中表示方法

0000000000 00000000 00000000 00000110 右移兩位,正數補0,結果為1

-----------------------------------------------------------------------------------------------------

00000000 00000000 00000000 00000110 +6在計算機中表示方法

11111111 11111111 11111111 11111001

11111111 11111111 11111111 11111010 -6在計算機中的表示

0011111111 11111111 11111111 11111010 右移兩位,補充0,結果為1073741822

可以參考

移位操作要注意的問題是高(低)位是補0還是補1和對char, byte, short型的操作:

(1)<< : (left-shift), 最低位補0

(2)>> : (signed right-shift), 右移過程使用符號位擴展(sign extension),即如果符號為為1則高位補1, 是0則補0,也就是邏輯右移

(3)>>> : (unsigned right-shit),右移過程使用零擴展(zero extension),即最高位一律補0,也就是算術右移

(4)移位操作的數據類型可以是byte, char, short, int, long型,但是對byte, char, short進行操作時會先把它們變成一個int型,最后得到一個int型的結果,對long型操作時得到一個long型結果,不可以對boolean型進行操作。

(5)移位操作符可以和=合并起來,即 <<= 、 >>= 和 >>>=。例如 a >>= 2; 表示將a右移兩位后的值重新賦給a。當時在使用這三個操作符對 byte, char, short型數據進行操作時要注意,例如有一下代碼片段:

public?class?ShiftTest

{

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

{

byte?a;

byte?b;

byte?c;

a?=?127;

b?=?127;

c?=?127;

a?<<=?2;

System.out.println(a);

System.out.println(b?<<=?2);

System.out.println(c?<

}

}

運行結果是:

-4

-4

508

這說明了在操作a <<= 2 執行過程是這樣的:先將 byte型的數 127變成int型,左移2位得到 508,然后把508賦給byte型變量a時只是簡單地"折斷"(truncate)得到數-4。編譯時編譯器不會提示你可能損失精度(實際上在本例中確實是損失精度了),但是如果你把a <<= 2改成 a = a << 2;編譯器就會提示可能損失精度了。

================================================================================

移位操作的簡單計算方法

>>右移操作

x>>y

就是x除以2的y此方,取整數

<

X<

就是x乘以2的y次方

總結

以上是生活随笔為你收集整理的java 右移两位_java左移右移运算符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: hd极品free性xxx护士 | 肉丝超薄少妇一区二区三区 | 亚洲欧洲精品成人久久奇米网 | ww欧美| 欧美色图俺去了 | 久久综合区| 成人午夜sm精品久久久久久久 | 非洲黑寡妇性猛交视频 | 免费网站观看www在线观 | 一区二区三区四区免费观看 | 日本无遮羞调教打屁股网站 | 日本不卡一区二区三区在线观看 | 在线观看污网站 | 久久av秘一区二区三区 | 久久99国产综合精品免费 | 日韩中文字幕不卡 | 91禁看片 | 欧美视频一区二区三区四区在线观看 | 中文字幕乱码在线观看 | 美女视频久久久 | 老司机午夜剧场 | 香蕉视频99 | 国产免费久久久 | 日韩中文字幕在线播放 | 香蕉视频黄色片 | 亚洲第一网址 | 国产在线97| 男插女青青影院 | 欧美午夜剧场 | 特级西西人体444www高清 | 少妇伦子伦精品无吗 | 日韩免费看 | 精品在线视频观看 | 久在线观看视频 | 又黄又刺激的视频 | 欧美风情第一页 | 日韩成人精品一区二区三区 | 爱情岛论坛亚洲自拍 | 久久激情免费视频 | 网站免费在线观看 | 精品国产污污免费网站入口 | 在哪里可以看黄色片 | 国产91丝袜在线播放 | 精品一区二区三区av | 婷婷色婷婷开心五月四房播播 | 国产强被迫伦姧在线观看无码 | 大肉大捧一进一出好爽视频 | 免费国产网站 | 日韩av线| 神马午夜场 | 天堂影视在线观看 | 在线免费观看国产视频 | 免费看黄的网址 | 亚洲精品蜜桃 | 亚洲av无码一区二区三区四区 | 免费黄片毛片 | 日韩综合中文字幕 | 亚洲成人精选 | 免费一级片 | 四虎新网站| 91久久人澡人人添人人爽欧美 | 日韩成人一级片 | 天堂素人约啪 | 亚洲伦理一区二区三区 | 色偷偷噜噜噜亚洲男人 | 自拍av在线 | 九色九一 | 丁香婷婷久久 | 影视先锋av资源 | 禁漫天堂下载18 | 激情91视频 | 91麻豆蜜桃一区二区三区 | 国产精品一区二区入口九绯色 | 久操伊人| 国产睡熟迷奷系列精品视频 | av操操 | 欧美色xxx | 任我爽在线 | 色七七桃花影院 | 韩漫动漫免费大全在线观看 | 亚洲精品视频一区二区 | 激情五月激情 | 免费成人电影在线观看 | 国产精品VideoSex性欧美 | 国产一区二区三区电影在线观看 | 伊人热久久 | 超碰超碰超碰超碰超碰 | 法国空姐在线观看视频 | 国产精品69毛片高清亚洲 | 无码精品一区二区三区AV | 欧美中文字幕在线观看 | 亚洲天堂2024 | 欧美啊v| 素人一区二区三区 | 欧美一级免费片 | 久久精品一区二区三区四区 | 高清中文字幕av | 中日韩av在线 | 无遮挡黄色 |