運算符
首先,運算符是用來幹什麼的?
答:提供運算符是用來操縱變量的
使用頻率最高的幾種運算符:
- 算術運算符
- 指派運算符
- 比較運算符
- 邏輯運算符
- 三目運算符
算術運算符:
注意:
- 如果+号的兩邊都是數字的話,那麼這個+表示的數學上的加法。
- 如果+号的兩邊,隻有有一個字元串,那麼這個+表示的是字元串連接配接符。
- (++與- -)單獨使用:放在操作數的前後對結果沒有差別。
- (++與- -)運算使用:放在操作數的前後是有差別的,放在前邊先自增或自減在參與運算,放在操作數的後邊是先進行運算在進行自增或者自減。
- 除法運算時如果兩邊都是整數 結果就是整數(整除),如果兩邊至少存在一個小數,結果就是小數。
例:
int x=10;
int y=20;
int sum=(x++) +(--y) +(++x) +(y--) ;
求x,y,sum的值。
x = 12;
y = 18;
sum = 60;
指派運算符:
指派運算符 作用
= a = b;将b的值指派給a。
+= a+=b;即就是a=a+b;将a+b的值指派給a
-= a-=b;即就是a=a-b;将a-b的值指派給a
/= a/=b;即就是a=a/b;将a/b的值指派給a
*= a*=b;即就是a=ab;将ab的值指派給a
%= a%=b;即就是a=a%;将a%b的值指派給a
注意:左邊必須是一個變量。
邏輯運算符:
邏輯運算符 作用
& 并且 有false則false
| 或者 有true則true
^ 異或 相同為false不同為true
! 非 非false則true 非true則false
&& 短路與
|| 短路或
注意:
- &&和&的差別:最終的結果一樣;但是&&具有短路效果,左邊為false,右邊不執行。
- ||和|的差別:最終的結果一樣;但是||具有短路效果,左邊為true,右邊不執行。
- 運算的結果肯定是一個boolean類型。
位運算符:
指的就是二進制之間的轉換。
按位與 (&) :兩位全為1,結果為1,否則為0;
按位或 (|) :兩位有一個為1,結果為1,否則為0;
按位取反(~):0 變 1, 1變0;
按位異或(^):兩位,如果相同,結果為0;如果不同,結果為1;
注意:
- 在使用時,需要将運算數都轉換為二進制再進行運算,若為負數則使用補碼表示。
- 位運算符與邏輯運算符(邏輯與&&、邏輯或||、邏輯非! )有點相似。但是,邏輯運算符隻能操作boolean變量。
例:
-11的“原碼”是 : 1000 0000 0000 1011
求出對應的反碼 : 1111 1111 1111 0100
求出對應的補碼 : 1111 1111 1111 0101
是以在計算機中 ‘-11’ 對應的二進制為 ‘ 1111 1111 1111 0101 ’
三目運算符:
三目運算符的文法: 變量=布爾表達式 ? 值1 : 值2;
if(a<b)
min=a;
else
min=b;
可以用下面的條件運算符來處理
min=(a<b)?a:b;//有兩個運算符,三個操作對象,是以也叫三目運算符。
//"(a<b)?a:b"是一個"條件表達式"
//它是這樣執行的: 如果a<b為真,則表達式取a值,否則取b值.
例:
int a = 1, b = 2, z, c = 3;
z = a > b ? a : (b > c ? b : c);
//b不大于3是以括号裡為3,a不大于b,是以輸出:後邊的數3.
cout << "z:" << z << endl;
輸出的結果是:z:3