位運運算元和三目運運算元

2020-11-13 13:01:01

位運運算元

運運算元含義範例
<<左移5 << 2 = 20 —> 5 * 2^2 = 5 * 4 = 20
>>右移5 >> 1 = 2 —> 5 / 2^1 = 5 / 2 = 2
>>>無符號右移5 >>> 1 = 2—> 5 / 2^1 = 5 / 2 = 2
&與運算(只要有一個為0,運算結果則為0,否則為1)5 & 3 = 1
|或運算(只要有一個為1,運算結果就為1,否則為0)5 | 3 = 7
^互斥或運算(如果兩個數值一樣,運算結果就為0,否則為1)5 ^ 3 = 6
~取反運算(瞭解)~6—>0110 = -7

備註:位運算計算機底層採用的對整數進行二進位制運算。

​ 【沒有無符號左移位運運算元】

三目運運算元

​ ?:

三目運運算元格式:

​ 布林型別表示式 ? 真的結果值 : 假的結果值

三目運運算元格式:
資料型別 變數名 = 布林型別表示式 ? 真的結果值 : 假的結果值

計算方式:

​ 如果布林型別表示式結果是true,三目運運算元運算的結果為緊鄰?後面的值

​ 如果布林型別表示式結果是false,三目運運算元運算的結果為緊鄰:後面的值。

備註:當三目運運算元運算參與有其他的運算(如賦值運算),要求三目運運算元中的?和:後面的值的【資料型別保持一致】。

If語句和三目運運算元的互換

		int num01 = 10;
		int num02 = 20;
         // 定義一個變數,儲存num01和num02的最大值
         int c;
         if (num01 > num02) {
             c = num01;
         } else {
             c = num02;
         }
		// 上面的語句我們也可以使用三目運運算元
         c = num01 > num02 ? num01 : num02;