位運算子
?
| 運算子 | 含義 | 示例 |
|---|---|---|
| << | 左移 | 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;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/214473.html
標籤:其他
