1.1算數移位
右移:高位補0,低位捨棄。若捨棄的位=0,則相當於/2,若捨棄的不等於0,就會丟失精度
把0000101.0 向右移動一位 000010.1 小數點後面的會1被捨棄,導致精度不足
左移:低位補0,高位捨棄,若捨棄的位=0,相當於*2,若捨棄的位不等於0,則會嚴重丟失精度
正數的反碼與原碼相同
右移:高位補0,低位捨棄 左移:低位補0,高位捨棄
負數的反碼與原碼相反 右移:高位補1,低位捨棄 左移:低位補0,高位捨棄
正數的補碼 右移:高位補0,低位捨棄 左移:低位補0,高位捨棄
負數的補碼=反碼末尾加1 右移:高位補1,低位捨棄 左移:低位補0,高位捨棄
左移相當於x2,右移相當於除2
因為位數有限,無法用算數移位精確的等效乘除法
1.2 邏輯移位
邏輯右移: 高位補0,低位捨棄
邏輯左移:低位補0,高位捨棄
eg:在顏色**中rgb(102,139,139) 二進位制代表(01100110,100001011,10001011)
1.3 迴圈移位
在做一些運算時,數值會溢位,多出乙個進製
在進行迴圈移位時,右移會將原本的進製放在末尾的位置,新進的溢位位,代替原本的進製
變成
java 移位運算
移位運算子就是在二進位制的基礎上對數字進行平移。按照平移的方向和填充數字的規則分為三種 左移 帶符號右移 和 無符號右移 在移位運算時,byte short和char型別移位後的結果會變成int型別,對於byte short char和int進行移位時,規定實際移動的次數是移動次數和32的餘數,也就...
C C 移位運算
c c 移位運算 一 移位運算子及其規則 移位運算子就是在二進位制的基礎上對數字進行平移,是在補碼的基礎上進行操作的。按照平移的方向和填充數字的規則分為三種 左移 帶符號右移 無符號右移 左移運算子的規則 1 int型別數值實際移位的次數是和32的餘數,移位33次和移位1次得到的結果相同 例如int...
移位運算練習
1 統計乙個整數n表示為二進位制後,1的個數 2 統計兩個整數m,n,將m轉化為n需要改變的位數 3 將乙個整數n的i到j位替換為m。1 思路 每次將n減去1再做與運算,將n最右邊的數由1變為0,那麼乙個數中有多少個1,就需做多少次這樣的運算,n n n 1 直到n 0。2 思路 先將兩個數做異或運...