java移位运算_Java 移位运算符
移位運算符就是在二進制的基礎上對數字進行平移。按照平移的方向和填充數字的規則分為三種:<>(帶符號右移)和>>>(無符號右移)。
在移位運算時,byte、short和char類型移位后的結果會變成int類型,對于byte、short、char和int進行移位時,規定實際移動的次數是移動次數和32的余數,也就是移位33次和移位1次得到的結果相同。移動long型的數值時,規定實際移動的次數是移動次數和64的余數,也就是移動66次和移動2次得到的結果相同。
386 以后的硬件把移位對字長進行取模,右移32位就是右移了0位(CPU 把右移的位數 32 對于字長 32 進行取模運算,得到 0),因此 9 右移 32 位仍然是 9。你可以換一下for循環的條件,比如換成i<=64,你會發現結果是一樣的。
三種移位運算符的移動規則和使用如下所示:
<
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次方。
>>>運算規則:按二進制形式把所有的數字向右移動對應巍峨位數,低位移出(舍棄),高位的空位補零。對于正數來說和帶符號右移相同,對于負數來說不同。 其他結構和>>相似。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/sxpujs/archive/2009/03/19/4005654.aspx
總結
以上是生活随笔為你收集整理的java移位运算_Java 移位运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java打包时打入本地依赖包
- 下一篇: java美元兑换,(Java实现) 美元