1. 程式人生 > 其它 >位運算與移位運算

位運算與移位運算

位運算子

位運算指的是進行二進位制位的運算

位運算子 說明
~ 取反
& 按位與
| 按位或
^ 按位異或
<< 左移運算子,左移一位等於乘二
>> 右移運算子,右移一位相當於除2取商

按位取反、按位與、按位或、按位異或的程式碼執行操作

        int a = 7;//0111
        int b = 8;//1000
        System.out.println(a&b);//按位與結果0000轉為10進位制結果是0
        System.out.println(a|b);//按位或結果1111轉為10進位制
        System.out.println(a^b);//按位異或結果1111轉為10進位制
        System.out.println(~b);//取反結果是-9(涉及補碼問題,暫不深究)

移位運算

    System.out.println(30<<4);//程式碼含義為左移四位也就是30*2*2*2*2,相當於30*2的四次方結果是480
    System.out.println(30>>4);//程式碼含義為右移四位也就是30/2/2/2/2,相當於30除以2的四次方,30/16,捨棄餘數取商,結果是1