java中的運算 , , ,

2021-07-30 05:40:22 字數 981 閱讀 5263

前兩天看**的時候看到了運算 ^、<<、>> ,因為之前很少用到所以一時間不知道怎麼運算了 ,看了下資料,總結一下

1.首先先說說^(異或運算),先看**

public

static

void

main(string args)

那麼這個1是怎麼來的,我們要知道^、<<、>>等位運算子主要針對二進位制,算異或的時候相同的為0,不同的為1

2轉換成二進位制是0010

3轉換成二進位制是0011

所以0010^0011的結果就是0001轉換成十進位制是1 ,所以2^3=1

2.《向左位移,先看段**

public

static

void

main(string args)

在運算的時候同樣要把十進位制轉換成二進位制, 2的二進位制是0010 ,向左移3位後面用000不齊,結果是10000 二進位制的10000轉換成十進位制是16(從右往左分別是1,2,4,8,16,32….)

3>>向右位移,**如下

public

static

void

main(string args)

原理和左移是一樣的,先轉成二進位制0010,再向右側移動三位,向右側移動的時候在左側不齊0,移動幾位不齊幾位,移動後的二進位制是0000 轉成十進位制就是0了。

4.&運算 按位「與」的計算是把兩個數字分別寫成二進位制形式,然後按照每一位判斷,&計算中,只要有乙個是0就算成0

看下例子:system.out.println(1&2);列印0 , system.out.println(1&1);列印1

下面解釋下原因

1的二進位制為:0001

2的二進位制為:0010

運算的結果為:0000 ->0

同理兩個1的&運算的二進位制結果為0001->結果為1

Java 中的位運算

移位運算子 包括 右移 左移 無符號右移 例子 5 3 1 1111 1111 1111 1111 1111 1111 1111 1011 1111 1111 1111 1111 1111 1111 1111 1111 其結果與 math.floor double 5 2 2 2 完全相同。5 3 ...

Java 中的位運算

計算機中的原碼 反碼和補碼 移位運算子 包括 右移 左移 無符號右移 例子 5 3 1 1111 1111 1111 1111 1111 1111 1111 1011 1111 1111 1111 1111 1111 1111 1111 1111 其結果與 math.floor double 5 2...

Java 中的位運算

移位運算子 包括 右移 左移 無符號右移 例子 5 3 1 1111 1111 1111 1111 1111 1111 1111 1011 1111 1111 1111 1111 1111 1111 1111 1111 其結果與 math.floor double 5 2 2 2 完全相同。5 3 ...