• 算术运算符
• 关系运算符
• 逻辑运算符
• 位运算符
• 赋值运算符
• 其他运算符

## 算术运算符

+Adds two operandsA + B will give 30
-Subtracts second operand from the firstA - B will give -10
*Multiplies both operandsA * B will give 200
/Divides numerator by denominatorB / A will give 2
%Modulus Operator and remainder of after an integer divisionB % A will give 0
++Increment operator increases integer value by oneA++ will give 11
--Decrement operator decreases integer value by oneA-- will give 9

## 关系运算符

==Checks if the values of two operands are equal or not; if yes, then condition becomes true.(A == B) is not true.
!=Checks if the values of two operands are equal or not; if values are not equal, then condition becomes true.(A != B) is true.
>Checks if the value of left operand is greater than the value of right operand; if yes, then condition becomes true.(A > B) is not true.
<Checks if the value of left operand is less than the value of right operand; if yes, then condition becomes true.(A < B) is true.
>=Checks if the value of left operand is greater than or equal to the value of right operand; if yes, then condition becomes true.(A >= B) is not true.
<=Checks if the value of left operand is less than or equal to the value of right operand; if yes, then condition becomes true.(A <= B) is true.

## 逻辑运算符

&&Called Logical AND operator. If both the operands are non zero then condition becomes true.(A && B) is false.
||Called Logical OR Operator. If any of the two operands is non zero then condition becomes true.(A || B) is true.
!Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true, then Logical NOT operator will make false.!(A && B) is true.

## 位运算符

pqp & qp | qp ^ q
00000
01011
11110
10011

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

&Binary AND Operator copies a bit to the result if it exists in both operands.(A & B) will give 12, which is 0000 1100
|Binary OR Operator copies a bit if it exists in either operand.(A | B) will give 61, which is 0011 1101
^Binary XOR Operator copies the bit if it is set in one operand but not both.(A ^ B) will give 49, which is 0011 0001
~Binary Ones Complement Operator is unary and has the effect of 'flipping' bits.(~A ) will give -61, which is 1100 0011 in 2's complement form.
<<Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand.A << 2 will give 240, which is 1111 0000
>>Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand.A >> 2 will give 15, which is 0000 1111

## 赋值运算符

=Simple assignment operator, Assigns values from right side operands to left side operandC = A + B will assign value of A + B into C
+=Add AND assignment operator, It adds right operand to the left operand and assigns the result to left operandC += A is equivalent to C = C + A
-=Subtract AND assignment operator, It subtracts right operand from the left operand and assigns the result to left operandC -= A is equivalent to C = C - A
*=Multiply AND assignment operator, It multiplies right operand with the left operand and assigns the result to left operandC *= A is equivalent to C = C * A
/=Divide AND assignment operator, It divides left operand with the right operand and assigns the result to left operandC /= A is equivalent to C = C / A
%=Modulus AND assignment operator, It takes modulus using two operands and assigns the result to left operandC %= A is equivalent to C = C % A
<<=Left shift AND assignment operatorC <<= 2 is same as C = C << 2
>>=Right shift AND assignment operatorC >>= 2 is same as C = C >> 2
&=Bitwise AND assignment operatorC &= 2 is same as C = C & 2
^=bitwise exclusive OR and assignment operatorC ^= 2 is same as C = C ^ 2
|=bitwise inclusive OR and assignment operatorC |= 2 is same as C = C | 2

## 其他运算符 ↦ sizeof & 三元

sizeof()Returns the size of an variable.sizeof(a), where a is integer, will return 4.
&Returns the address of an variable.&a; will give actual address of the variable.
*Yiibaier to a variable.*a; will yiibaier to a variable.
? :Conditional ExpressionIf Condition is true ? Then value X : Otherwise value Y

## Objective-C中的运算符优先级

Postfix () [] -> . ++ - -  Left to right
Unary + - ! ~ ++ - - (type)* & sizeof Right to left
Multiplicative  * / % Left to right
Additive  + - Left to right
Shift  << >> Left to right
Relational  < <= > >= Left to right
Equality  == != Left to right
Bitwise AND Left to right
Bitwise XOR Left to right
Bitwise OR Left to right
Logical AND && Left to right
Logical OR || Left to right
Conditional ?: Right to left
Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left
Comma Left to right

0