close

位移運算子 Shift Operators 在處理位元時會用到

主要有3個

<<  x<<y   將x的位元左移y個單位,最右邊補上0, 相當於*2的概念, 遇到資料大小不夠時會自動轉型
>>  x>>y   將x的位元右移y個單位,最左邊補上原來最左邊的位元值, 相當於/2的概念
>>> x>>>y  將x的位元右移y個單位,最左邊補上0

 

1. 官網https://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html

01.png

 

2. 簡單的範例

  //結果 0x0000 0010 相當於乘2
  System.out.printf("0x%x\n", 1 << 1);
  
  //結果 0x0000 0000 相當於機算機的除2
  System.out.printf("0x%x\n", 1 >> 1);
  
  //左邊補上原來最左邊的位元值, 相當於/2的概念
  System.out.printf("0x%x\n", -1 >> 1);
  
  //左邊補上0其他向右位移
  System.out.printf("0x%x\n", -1 >>> 1);

02.png

 

3. 結果顯是

0x2
0x0
0xffffffff
0x7fffffff

03.png  

arrow
arrow

    RX1226 發表在 痞客邦 留言(0) 人氣()