位移運算子 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

 

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);

 

3. 結果顯是

0x2
0x0
0xffffffff
0x7fffffff

 

文章標籤
全站熱搜
創作者介紹
創作者 RX1226 的頭像
RX1226

給你魚竿

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