Các phép toán trong ngôn ngữ C

1. Phép toán số học

Phép cộng (+) : a + b
Phép trừ (-) : a – b
Phép nhân (*) : a * b
Phép chia (/) : a / b (phép chia lấy phần nguyên : 5 / 4 = 1)
Phép chia lấy dư (%) : a % b (6 % 4 = 2)

2. Phép toán quan hệ (so sánh)

Phép toán quan hệ có giá trị logic TRUE (1) hoặc FALSE (0)
So sánh lớn hơn : a > b (4>5 có giá trị 0, 5 > 4 có giá trị 1)
So sánh lớn hơn hoặc bằng : a >= b (5 >= 5 có giá trị 1)
So sánh nhỏ hơn : a < b (6 < 9 có giá trị 1)
So sánh nhỏ hơn hoặc bằng : a <= b ( 7 <= 9 có giá trị 1)
So sánh bằng : a == b (7 == 7 có giá trị là 1)
So sánh khác : a != b (7 != 7 có giá trị là 0)

3. Phép toán logic

Giá trị của phép toán logic là 0 hoặc 1
Phép phủ định (!) : ! a
! 0 = 1
! 1 = 0
Phép toán AND (&&) : a && b ( nếu a và b cùng # 0 thì a && b = 1)
0 && 0 = 0
0 && 1 = 0
1 && 0 = 0
1 && 1 = 1
Phép toán hoặc OR (||) : a || b (nếu a hoặc b cùng bằng 0 thì a || b = 0)
0 || 0 = 0
0 || 1 = 1
1 || 0 = 0
1 || 1 = 1

4. Phép toán thao tác bit

Phép toán AND bit (&) : a & b
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
Phép toán OR bit (|) : a | b
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
Phép toán XOR bit (^) : a^b
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
Phép toán dịch bit trái (<<) : a<<N
a<<N = a*2E+N : số a dịch trái N bit
Phép toán dịch bit phải (>>) : a>>N
a>>N = a*2E-N : số a dịch phải N bit
Lấy phần bù (~) : ~a
~0 = 1
~1 = 0

 

5. Phép toán tăng,giảm

Toán tử ++ : sẽ cộng thêm 1 vào toán hạng của nó. Chia ra làm 2 loại toán tử tăng:
++x : toán tử tăng trước, toán hạng x sẽ được tăng trước khi sử dụng
x++ : toán tử tăng sau, toán hạng x sẽ được tăng sau khi sử dụng

Toán tử — : sẽ trừ đi 1 vào toán hạng của nó. Chia ra làm 2 loại toán tử giảm:
–x : toán tử giảm trước, toán hạng x sẽ được giảm trước khi sử dụng
x– : toán tử giảm sau, toán hạng x sẽ được giảm sau khi sử dụng

 

Ví dụ:

int n = 2;
int x, y;
x = n++; // x = 2, n = 3
y = ++n; //n = 4, y = 4

Ví dụ:

int m = 5;
int x, y;
x = --m ; // m = 4 , x = 4
y = m--; // m = 3, y = 4

6. Thứ tự ưu tiên của các toán tử

Phép toán Trình tự kết hợp
() [] -> . Trái qua phải
! ~ & * – ++ —  sizeof Phải qua trái
 *(nhân) / % Trái qua phải
 +  – Trái qua phải
 <<  >> Trái qua phải
 <  <=   >  >= Trái qua phải
 ==    != Trái qua phải
 & Trái qua phải
 ^ Trái qua phải
 | Trái qua phải
 && Trái qua phải
|| Trái qua phải
 ? : Phải qua trái
 =   +=   -=   *=    /=  %=    <<=  >>=    &=   ^=    |= Phải qua trái

 

Giải thích:

– Các toán tử cùng STT thì cùng mức độ ưu tiên, các toán tử ở dòng trên có mức độ ưu tiên cao hơn dòng dưới.
– Đối với các toán tử cùng mức độ ưu tiên, thì trình tự tính toán có thể từ trái qua phải hoặc từ phải qua trái ( xem ở cột thứ tự kết hợp).
– Nếu không chắc chắn về việc sử dụng thứ tự ưu tiên, thì nên dùng () trong biểu thức.

Be the first to comment

Leave a Reply