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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java移位操作符注意的问题

發布時間:2025/5/22 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java移位操作符注意的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果對char,byte或者short類型的數值進行移位處理,那么在移位進行之前,他們會被轉為int類型,

并且所得到的結果也是一個int型。

若對long類型的數值進行處理所得到的結果也是long。

如果對byte或者short值進行這樣的右移(>>>=)運算,得到的可能是不正確的結果,他們會被轉成int類型,

然后被截斷,賦值給原來的類型.

public class Test {/*** @param args*/public static void main(String[] args) {int i=-1;System.out.println(Integer.toBinaryString(i));i>>>=10;System.out.println(Integer.toBinaryString(i));byte b=-1; //11111111System.out.println(Integer.toBinaryString(b)); //調用Integer的toBinaryString(int x) 32個1b>>>=10; //移位后為1111111111111111111111,因為b是byte類型,所以b= 11111111,還是-1的值System.out.println(Integer.toBinaryString(b)); //又輸出32個1b=-1;System.out.println(Integer.toBinaryString(b));System.out.println(Integer.toBinaryString(b>>>10)); //移位后沒有賦值,直接輸出,22個1 }}

11111111111111111111111111111111
1111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
1111111111111111111111

?

轉載于:https://www.cnblogs.com/xurui1995/p/5188170.html

總結

以上是生活随笔為你收集整理的java移位操作符注意的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

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