標籤:objective-c 物件導向 開發人員 ios開發 位元運算
重開發人員的勞動成果,請勿轉載
運算子和運算式
運算子可以分成如下幾種:
?算術運算子, +, ―, *, /, %, ++, ――
?關係運算子, >, <, >=, <=, ==, !=
?布爾邏輯運算子, ! , &&, ||
?位元運算符, &, | , ^, ~ , >>, <<
?賦值運算子, +=, ―=, *=, /=
?條件運算子, ? :
短路與和短路或
布爾邏輯運算子中有兩個比較特殊的運算子號, “&&” 和“|| ” , 其中“&&” 為短路與, 如果對兩個運算式進行計算, 若第1 個運算式的值為“假” , 則與第2個運算式的值無關, 結果肯定為“假” , 所以此時第2個運算式不再計算。 “|| ” 為短路或, 如果對兩個運算式進行計算, 若第1 個運算式的值為“真” , 則與第2個運算式的值無關, 結果肯定為“真” ,所以此時第2個運算式不再計算。
舉例如下:int i = 0;
int a = 10;
int b = 9;
if ((a > b) | (i++ == 1)) {
NSLog(@" a > b");
} else {
NSLog(@" a < b");
}
NSLog(@"i = %i", i);
結果是a > b和i =1
位元運算符
位元運算符有如下幾個運算子: &, | , ^, ~ , >>, <<, 其中&是按位與, | 是按位或, ^是異或, ~是取反, >>是右位移, <<是左位移。
位元運算符舉例:
假設有兩個位元16位整數(short int) ,
a=1001110110011101 和b=0011100100111001 , 則有如下結果;它們的運行結果如下:
條件運算子
條件運算子的文法格式為:
布林運算式? 返回值1: 返回值2
當布林運算式的值為真時, 返回運算式1 的值, 否則返回運算式2的值。 舉例如下:
int i = 70;
int i3 =70
NSString *res = i3 > 60 ? @"及格" : @"不及格" ;
NSLog(@"res = i3 > 60 %@ ", res);
結果是“及格”
運算式
運算式,是由數字、算符、數字分組符號(括弧)、自由變數和約束變數等
以能求得數值的有意義排列方法所得的組合。
約束變數在運算式中已被指定數值,而自由變數則可以在運算式之外另行指定數值。
運算式的意義
給與自由變數一些數值指定,可以給與一個運算式數值,即使對於一些自由變數的值,表示式或許沒有定義。因此,一個運算式代表一個函數,其輸入為自由變數的定值,而其輸出則為表示式因之後所產生出的數值。
舉例來說:運算式x/y,分別使自由變數x和y定值為10和5,其輸出為數字2;但在y值為0時則沒有定義。
一個運算式的賦值和算符的定義以及數值的定義域是有關聯的。
兩個運算式若被說是等值的,表示對於自由變數任意的定值,兩個運算式都會有相同的輸出,即它們代表同一個函數。
一個運算式必須是合式的。亦即,其每個算符都必須有正確的輸入數量,在正確的地方。如運算式2+3便是合式的;而運算式*2+則不是合式的,至少不是算術的一般標記方式。
運算式和其賦值曾在20世紀30年代由阿隆佐·邱奇和Stephen Kleene在其λ演算中被公式化。λ演算對現代數學和電腦程式設計語言的發展都曾有過重大的影響。
運算式的分類
1、算術運算式:
算術運算式是最常用的運算式,又稱為數值運算式。它是通過算術運算子來進行運算的數學公式。
算術運算子
1)乘法運算子 *
X*Y 求X乘Y的值 舉例:6*7=42
2) 除法運算子 /
X/Y 求X除Y的值(浮點數運算) 舉例:2.76/1.2=2.3
3)整除運算子 div
X div Y 求X除Y的整數商(對整型數計算) 舉例:25=5
4)取餘運算子 Mod
X mod Y 求X除Y的餘數(對整型數運算) 舉例:25 mod 4=1
5)加法運算子 +
X+Y 加法運算 舉例:32+2=34
6)減法運算子 -
- X-Y 減法運算 舉例:48-21=27
2、邏輯運算式
邏輯運算的結果只有兩個:True(真)和False(假)。OC提供了六種關係運算子和三種邏輯運算子:
==(等於)、<(小於)、<=(小於等於)、>(大於)、>=(大於等於)、!=(不等於)
!(非)、&&(與)、||(或)
運算式的運算優先順序
在進行運算式的轉換過程中,必須瞭解各種運算的優先順序,使轉換後的運算式能滿足數學公式的運算要求。運算優先順序為:
括弧→函數→乘方→乘、除→加、減→字元串連運算子→關係運算子→邏輯運算子
如果同級的運算是按從左至右次序進行;多層括弧由裡向外。
例:
(10+6)*3^2*COS(1)/2*8+7
① ④ ③ ⑤ ② ⑥ ⑦ ⑧
Sqrt(Abs(p/n-1))+1
④ ③ ① ② ⑤
Objective-C之成魔之路【4-運算子和運算式】