程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> java中關於移位運算符的demo與總結,運算符demo

java中關於移位運算符的demo與總結,運算符demo

編輯:JAVA綜合教程

java中關於移位運算符的demo與總結,運算符demo


首先,移位運算符有三種,其操作類型只支持:byte / short / char / int和long五種。

<< 左移運算符,表示將左邊的操作數的二進制數據向左移動*位,移動後空缺位以0填充,多余位捨棄。(等同於乘2的n次方)

>> 右移運算符,二進制數據向右移動*位,就在其二進制數據後抹掉幾位?(這裡還不錯定,但個人理解是這樣的)(等同於除2的n次方)

>>> 無符號右移運算符,不管移動前最高位是0還是1,右移後左側產生的空位部分都以0來填充。

下面我們借一個demo幫助理解:

public static void main(String[] args){
        int a = 16;
        int b = a << 2;//左移2,等同於16 * 2的2次方,也就是16 * 4
        int c = a >> 2;//右移2,等同於16 / 2的2次方,也就是16 / 4
        
        System.out.println("a的二進制數據為:" + Integer.toBinaryString(a));
        System.out.println("a左移後二進制數據為:" + Integer.toBinaryString(b));
        System.out.println("a右移後二進制數據為:" + Integer.toBinaryString(c));
        
        System.out.println("a左移後的值為:" + b);
        System.out.println("a右移後的值為:" + c);
    }
}

查看運行結果,如圖所示:

首先,16的二進制數據為:10000;

左移兩位,10000變成1000000;

右移兩位,10000變成100;

把得到的二進制數據轉換成普通數據後,

a左移後的值為64,既16 * 2的2次方(16 * 4)。

a右移後的值為4,既16 / 2的2次方(16 / 4)。

看完這個demo再理解移位運算符是不是就簡單很多?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved