Java的左移和右移運算子

Adrian_Dai發表於2018-03-04

<<      :     左移運算子,num << 1   相當於num乘以2

>>      :     右移運算子,num >> 1  相當於num除以2

 

比如num是40 (10進位制)  對應的二進位制為: 101000 = 2的5次方x1+2的4次方x4+2的3次方x1+2的2次方x0+2的1次方x0+2的0次方x0 (二進位制轉換為十進位制方法原始方法)

 

<<     左移一位(左移一位是相對於二進位制來說的,如果是十進位制數轉為二進位制後左一位後在轉為十進位制數)

 

 過後對應的二進位制:1010000 = 2的6次方x1+2的5次方x4+2的4次方x1+2的3次方x0+2的2次方x0+2的1次方x0+2的0次方x0

 

= (2的5次方x1+2的4次方x4+2的3次方x1+2的2次方x0+2的1次方x0+2的0次方x0)x2=40x2

 

同樣,如果左移兩位就是2的平方,3位2的3次方···,這樣推算結果就是左移幾位就是原來的十進位制數乘以2的多少次方,比如40左移3位

 

結果就是40x2的3次方  =  320  

 

 

 

相關文章