導航:首頁 > 編程語言 > 移位運算符java

移位運算符java

發布時間:2022-05-15 23:13:51

⑴ 請教java位運算問題

Java 位運算 Java 位運算[轉]一,Java 位運算1.表示方法: 在Java語言中,二進制數使用補碼表示,最高位為符號位,正數的符號位為0,負數為1。補碼的表示需要滿足如下要求。 (l)正數的最高位為0,其餘各位代表數值本身(二進制數)。 (2)對於負數,通過對該數絕對值的補碼按位取反,再對整個數加1。2.位運算符 位運算表達式由操作數和位運算符組成,實現對整數類型的二進制數進行位運算。位運算符可以分為邏輯運算符(包括~、&、|和^)及移位運算符(包括>>、>)。1)左移位運算符()則將運算符左邊的運算對象向右移動運算符右側指定的位數。「有符號」右移位運算符使用了「符號擴展」:若值為正,則在高位插入0;若值為負,則在高位插入1。3)Java也添加了一種「無符號」右移位運算符(>>>),它使用了「零擴展」:無論正負,都在高位插入0。這一運算符是C或C++沒有的。

⑵ JAVA中的「>>」和「>>>」運算符

1、>>:右移運算符,num >> 1,相當於num除以2。

按二進制形式把所有的數字向右移動對應位數,低位移出(舍棄),高位的空位補符號位,即正數補零,負數補1。符號位不變。

如:

-1在32位二進制中表示為:

11111111 11111111 11111111 11111111

-1>>1:按位右移,符號位不變,仍舊得到
11111111 11111111 11111111 11111111

因此值仍為-1

2、>>>:二進制右移補零操作符,左操作數的值按右操作數指定的位數右移,移動得到的空位以零填充

如value>>>num中,num指定要移位值value移動的位數。

(2)移位運算符java擴展閱讀

「>>」和「>>>」等移位運算符的運算規則:

1、無符號右移,忽略符號位,空位都以0補齊。

value>>>a,a是要移位值value移動的位數。

無符號右移的規則只記住一點:忽略了符號位擴展,0補最高位無符號右移運算符>>>只是對32位和64位的值有意義。

2、右移位運算符>>,若操作的值為正,則在高位插入0;若值為負,則在高位插入1。

右移補零操作符>>>,無論正負,都在高位插入0。

⑶ Java移位運算符問題

有符號右移會保留最高位的符號位,從次高位開始逐位右移填0;而無符號右移會將符號位一起右移,並將高位全部填0。
例:對於一個byte類型的數10010100來說,有符號右移2位變為10000101,而無符號右移2位變為00100101。前者仍然是一個負數,而後者變成了正數。
左移只有有符號的,沒有無符號左移。

⑷ java位移運算符有什麼意義

給你舉個例子,乘除法可以使用位運算,速度更快。很多底層的東西是用位運算去實現的,你去看看java的很多源碼,還有IO流的處理有時候會用位運算,二進制文件的讀寫解析等都需要位運算,如果你了解底層的東西,你會位運算,這回讓你的程序生涯更加精彩,望採納,謝謝

⑸ Java移位運算符的計算問題

1<<3就是8啊,這倆是一個值,所以是1<<3或者8

⑹ java移位運算的一些基本概念問題,求解釋

首先 第一個問題-1的二進製表示並不是1111 1111而是1000 0001 ,最高位是(最左邊的一位)符號位,最高位為0表示是正數,1表示是負數

第二個問題<<是指整個數往左邊移
例如:3 <<2(3為int型)
1)把3轉換為二進制數字0000 0000 0000 0000 0000 0000 0000 0011,
2)把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位,
3)在低位(右側)的兩個空位補零。則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 1100,
轉換為十進制是12。
同理,>>表示右移.

最後一個問題int val=-1 >>算術右移 不改變符號往右移 >>>邏輯右移 並不能保證不改變符號 至於結果我試了一下並不相等。

⑺ java中的幾個移位運算符總結

/*
* <<:左移 左邊最高位丟棄,右邊補齊0
* >>:右移 最高位是0,左邊補齊0,;最高位是1,左邊補齊1
* >>>:無符號右移 無論最高位是0還是1,左邊補齊0
*
*/
public class Demo4 {
public static void main(String[] args) {
//<<把<<左邊的數據乘以2的移動數的次冪
System.out.println(3<<2);//3*2^2 = 12
//<<把<<左邊的數據除以2的移動數的次冪
System.out.println(12>>2);//12/2^2 = 3
System.out.println(-24>>>2); //1073741818
}
}

⑻ java位移運算

設110為int類型,那麼其2進制序列為:根據你的需求,將左端4到7位變位0,那麼最終得到的指令為:(也就是將1110變為0)與運算: &,其規則如下:1&1 --> 1
1&0 --> 0
0&1 --> 0
0&0 --> 0那麼你現在這種情況,你只需&上這個數就可以達到目的了:也就是10進制的112,那麼:int i = 110;
i = i & 112;
System.out.println(i);最後i的結果為96,其2進制為:

⑼ Java中設置常量為什麼要用移位運算符有什麼好處

左移運算符,num << a,相當於num * 2^a。至於為什麼這么寫,只是為了別人看的明顯一點。

publicstaticfinalIntegerLOG_OPEN=1<<1;
publicstaticfinalIntegerLOG_OPEN=2;

這2句是沒有任何區別的,jvm在編譯的時候都自動算成第二個。

⑽ JAVA的移位運算

全錯。
在java中,對byte型進行位移操作,那麼在移位進行之前,它們會自動轉換成一個int,得到的結果也是int
第一題-17:11111111
11111111
11111111
11101111
(無符號右移2位)後為
00111111
11111111
11111111
11111011
=
1073741819
同上
第二題為:00011111
11111111
11111111
11111010
第三題為0

閱讀全文

與移位運算符java相關的資料

熱點內容
電影和電視播放器 瀏覽:112
櫻桃小說by小花喵 瀏覽:513
英國看片網站叫什麼名字 瀏覽:676
法蘭克plc編程軟體 瀏覽:359
怎麼看pdf的字體 瀏覽:634
和李采潭合作的女演員有哪些 瀏覽:430
日本那部電影病嬌男主要當女主的狗是校園電影 瀏覽:210
抗日戰爭片400部 瀏覽:730
編程可以賺錢嗎 瀏覽:729
eclipseandroid建立工程 瀏覽:732
大胸女友主演 瀏覽:276
佛教電影《解怨》國語 瀏覽:474
哪部電影男孩叫安東 瀏覽:13
有騎木驢的電影叫什麼感覺 瀏覽:265
windows重啟mysql命令 瀏覽:730
單片機輸入輸出口接收脈沖 瀏覽:121
控制電腦滑鼠的命令 瀏覽:213
男男強暴電影 瀏覽:604
便利店送貨上門app叫什麼 瀏覽:468
win8怎麼打開命令行 瀏覽:129