和 和 運算子

2021-08-21 14:48:38 字數 1056 閱讀 7186

今天在看hashmap原始碼時發現有幾個沒見過的運算子 " ^","&","<<>>"。總結如下。

圖一:

以上**執行的結果為1和0;

你會發現運算的規則是:兩個數進行異位運算時,兩個變數值相同時,則值是0,其中乙個變數為0,則值是另外乙個變數的值。

圖二:

以上**執行的結果為3,2,1;

你會發現:第5行和第6行像除法是吧,這麼以為你就錯了。

異或的運算規則: a的值為1轉換成二進位制的值為1,b的值為2轉換成二進位制的值為10,然後將a的第一位數和b的第二位數對比,將a的第二位數和b的第二位數對比,以此類推。                   

int  a = 01   int   b = 10  參照圖1運算規則

運算結果為11;轉換成十進位制就是3;

位於運算子也是對兩個數的二進位製同位進行比較,兩個數的同位數的值同時為1則為1,否則為0;

如:10&2

10的二進位制:1010;     2的二進位制:0010;

值則為:0010=2;

無符左移運算子 是對乙個值向左移多少位。

如:

a的二進位制值:10100; 向左移兩位

值則為:101;

列印結果:5;

當然你也可以用數學解決:a/(2的b次方);

右移運算子 是對乙個值向最右邊加多少個0。

如:

a的二進位制值:10100; 向右移兩位

值則為:1010000;

列印結果:80;

當然你也可以用數學解決:a*(2的b次方);

邏輯運算子( 和 , 和 )

1.定義 邏輯運算子 邏輯運算子用於對布林型的資料進行操作,其結果仍是乙個布林型。2.基本運算 3.注意一些細節 短路與和與 3.1 運算子 和 都表示與操作,當且僅當運算子兩邊的運算元都為true時,其結果才為true,否則結果為false。3.2 當運算子 和 的右邊為表示式時,兩者在使用上還有...

C 中運算子 和 和 的區別

是邏輯與運算子,是邏輯或運算子,都是邏輯運算子,兩邊只能是bool型別 與 既可以進行邏輯運算,又可以進行位運算,兩邊既可以是bool型別,又可以是數值型別 if a b 如果 a 為 false 整個表示式就為 false,不再計算 b 的值了。if a b 如果 a 為 false 整個表示式就...

C 中運算子 和 和 的區別

簡介 是邏輯與運算子,是邏輯或運算子,都是邏輯運算子,兩邊只能是bool型別 與 既可以進行邏輯運算,又可以進行位運算,兩邊既可以是bool型別,又可以是數值型別 區別 if a b 如果 a 為 false 整個表示式就為 false,不再計算 b 的值了。if a b 如果 a 為 false ...