㈠ 請教java移位運算符
>>>是無符號右移,用0來填充
>>是有符號右移,用1
沒有<<<符號!
㈡ 移位運算怎麼計算
移位運算符在程序設計中,是位操作運算符的一種。移位運算符可以在二進制的基礎上對數字進行平移。按照平移的方向和填充數字的規則分為三種:<<(左移)、>>(帶符號右移)和>>>(無符號右移)。
中文名
移位運算符
含義
在二進制的基礎上對數字進行平移
舉例
<<(左移運算符)
屬於
位操作運算符
快速
導航
左移運算符(<<)規則
右移運算符(>>)規則:
無符號右移運算符規則:
補充
簡介
在c++中,移位運算符有雙目移位運算符:<<(左移)和>>(右移)。移位運算符組成的表達式也屬於算術表達式,其值為算術值。左移運算是將一個二進制位的操作數按指定移動的位數向左移動,移出位被丟棄,右邊移出的空位一律補0。右移運算是將一個二進制位的操作數按指定移動的位數向右移動,移出位被丟棄,左邊移出的空位一律補0,或者補符號位,這由不同的機器而定。在使用補碼作為機器數的機器中,正數的符號位為0,負數的符號位為1。
在移位運算時,byte、short和char類型移位後的結果會變成int類型,對於byte、short、char和int進行移位時,編譯器未做任何優化的情況下(優化後不可預期),規定實際移動 的次數是移動次數和32的余數,也就是移位33次和移位1次得到的結果相同。移動long型的數值時,規定實際移動的次數是移動次數和64的余數,也就是 移動66次和移動2次得到的結果相同。
三種移位運算符的移動規則和使用如下所示:
左移運算符(<<)規則
按二進制形式把所有的數字向左移動對應的位數,高位移出(舍棄),低位的空位補零。
語法格式:
需要移位的數字 << 移位的次數
例如: 3 << 2,則是將數字3左移2位
計算過程:
3 << 2
首先把3轉換為二進制數字0000 0000 0000 0000 0000 0000 0000 0011,然後把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位,最後在低位(右側)的兩個空位補零。則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 1100,則轉換為十進制是12。
數學意義:
在數字沒有溢出的前提下,對於正數和負數,左移一位都相當於乘以2的1次方,左移n位就相當於乘以2的n次方。
右移運算符(>>)規則:
按二進制形式把所有的數字向右移動對應位移位數,低位移出(舍棄),高位的空位補符號位,即正數補零,負數補1。
語法格式:
需要移位的數字 >> 移位的次數
例如11 >> 2,則是將數字11右移2位
計算過程:
11的二進制形式為:0000 0000 0000 0000 0000 0000 0000 1011,然後把低位的最後兩個數字移出,因為該數字是正數,所以在高位補零。則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 0010。轉換為十進制是2。
數學意義:
右移一位相當於除2,右移n位相當於除以2的n次方。
無符號右移運算符規則:
按二進制形式把所有的數字向右移動對應位數,低位移出(舍棄),高位的空位補零。對於正數來說和帶符號右移相同,對於負數來說不同。
文章來自網路
㈢ java如何用移位符將一個數字加32
只通過位移符無法得到結果,因為位移符向左每位移一位相當於乘以2,向左位移5位相當於乘以2×2×2×2×2=32,所以十進制數字1向左位移5為可以得到1×32=32。其本質是十進制數的1轉換為二進制數後為0000 0001,其向左位移5位後為0010 0000,轉換為十進制數就是32。
位移相當於乘法,所以我們無法只通過位移符使一個數加32,那麼就這樣吧:
1 << 5 = 32,所以1 + 1 << 5 = 33, 2 + 1 << 5 = 34, 3 + 1 << 5 = 35。
㈣ 關於java中移位操作符(<<)的應用
你最後到底要問啥問題? 是"secretRed沒法應用到下一個method內怎麼辦"這個嗎?
secretRed 定義在方法外就行了。
㈤ Java使用位運算符進行移位操作問題。 真正懂的人才進來。
1:00001111 會被默認為 八進制 的數 = 585(十進制) = 01001001001(二進制)
2. 01001001001 >>2 = 010010010(二進制) = 146(十進制)
㈥ Java 移位運算符 問題
負數的左位移要用這個數的補碼來算 算完後再還原成原碼
㈦ java 移位操作符問題
(1)100 1100 0000 1010 >> 2 ----- 1111 0011 0000 0010
有符號位移 。最高位(括弧的數)為符號位的1,1代表負數。右移後產生新的符號位1,
即拿1補最高位
1(1)10 0110 0000 0101 右移1位
11(1)1 0011 0000 0010 右移2位
1100 1100 0000 1010 >>>2 ----- 0011 0011 0000 0010
無符號位移。即拿0補最高位
0(1)10 0110 0000 0101
00(1)1 0011 0000 0010
㈧ JAVA中的移位運算符|怎麼使用 下面代碼中的|又該怎麼理解
就是資料庫打開方式,是能讀寫以及在必要條件下創建的,|的意思是兩者都滿足。
其實這些常量應該都是整型,做位或運算而已。