熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java中的位移運算符

2013-11-23 19:30:02  來源: Java核心技術 
    移位運算符就是在二進制的基礎上對數字進行平移
   
    我們知道Java中byteshort和char類型在進行計算時都是先將其轉換為int類型同樣在進行移位運算時也不例外它們移位後的結果也都會變成int類型由於int類型為位的(所以對於byteshortchar和int進行移位時規定實際移動的次數最多是如果超過則按n = n % 來計算也就是說移位次和移位次得到的結果相同移動long型的數值時(long是位的)規定實際移動的次數是移動次數和的余數也就是移動次和移動次得到的結果相同您可以親自動手做下試驗
   
    現在我們介紹Java中的三種位移運算符
   
    )《(左移)
   
    運算規則按二進制形式把所有的數字向左移動對應的位數高位移出(捨棄)低位的空位補零
   
    語法格式
   
    需要移位的數字 《 移位的次數
   
    例如 則是將數字左移
   
    計算過程
   
   
   
    首先把轉換為二進制數字(int類型的話為字節long的話為字節) 然後把該數字高位(左側)的兩個零移出其他的數字都朝左平移最後在低位(右側)的兩個空位補零則得到的最終結果是 則轉換為十進制是
   
    數學意義在數字沒有溢出的前提下對於正數和負數左移一位都相當於乘以次方左移n位就相當於乘以的n次方比如 = *
   
    )》(帶符號右移)
   
    運算規則按二進制形式把所有的數字向右移動對應位數低位移出(捨棄)高位的空位補符號位即正數補負數補
   
    語法格式
   
    需要移位的數字 》 移位的次數
   
    例如則是將數字右移
   
    計算過程的二進制形式為 然後把低位的最後兩個數字移出因為該數字是正數所以在高位補零則得到的最終結果是 轉換為十進制是
   
    數學意義右移一位相當於除右移n位相當於除以的n次方
   
    )>>>(無符號右移)
   
    運算規則按二進制形式把所有的數字向右移動對應位數低位移出(捨棄)高位的空位補零其他結構和》相似
   
    位移運算通常用來對代碼進行速度上的優化用它來代替乘除法將是很好的選擇
   
    下面來舉幾個例子希望對大家使用位移運算符有所幫助
   
    用位移運算符來實現  i /
   
    = + +
   
    所以對i / 可以這樣來表示 ( i 《 ) + ( i 《) + ( i 《
   
    寫出( q 《 ) + ( q 《 )實現的代碼
   
    原式 = q * ^ + q * ^ = q * ( + ) = q *
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26978.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.