Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Các loại toán tử (Operators) trong C++

Trong C++, có nhiều loại toán tử được phân loại rộng rãi thành các nhóm sau: số học, quan hệ, logic, bitwise, gán và các toán tử khác.

1. Toán tử số học (Arithmetic Operators)

Giả sử biến A = 10 và B = 20:

Toán tử Mô tả
+ Cộng hai toán hạng. A + B = 30
- Trừ toán hạng thứ hai từ thứ nhất. A - B = -10
* Nhân hai toán hạng. A * B = 200
/ Chia tử số cho mẫu số. B / A = 2
% Toán tử chia lấy dư. B % A = 0
++ Toán tử tăng, tăng giá trị nguyên lên 1. A++ = 11
-- Toán tử giảm, giảm giá trị nguyên đi 1. A-- = 9

2. Toán tử quan hệ (Relational Operators)

Giả sử A = 10 và B = 20:

Toán tử Mô tả
== Kiểm tra hai toán hạng có bằng nhau không. (A == B) là false
!= Kiểm tra hai toán hạng có khác nhau không. (A != B) là true
> Kiểm tra vế trái lớn hơn vế phải. (A > B) là false
< Kiểm tra vế trái nhỏ hơn vế phải. (A < B) là true
>= Kiểm tra vế trái lớn hơn hoặc bằng vế phải. (A >= B) là false
<= Kiểm tra vế trái nhỏ hơn hoặc bằng vế phải. (A <= B) là true

3. Toán tử logic (Logical Operators)

Giả sử A = 1 (true) và B = 0 (false):

Toán tử Mô tả
&& AND logic. Cả hai khác 0 thì true. (A && B) = false
|| OR logic. Ít nhất một khác 0 thì true. (A || B) = true
! NOT logic. Đảo ngược trạng thái. !(A && B) = true

4. Toán tử bitwise (Bitwise Operators)

Toán tử bitwise thao tác trên từng bit. Bảng chân lý cho &, |, ^:

p  q  p&q  p|q  p^q
0  0   0    0    0
0  1   0    1    1
1  1   1    1    0
1  0   0    1    1

Giả sử A = 60 (0011 1100) và B = 13 (0000 1101):

A & B = 0000 1100 (12)
A | B = 0011 1101 (61)
A ^ B = 0011 0001 (49)
~A    = 1100 0011 (-61 trong dạng bù 2)
Toán tử Mô tả
& AND bit. Copy bit nếu tồn tại ở cả hai. (A & B) = 12
| OR bit. Copy bit nếu tồn tại ở một trong hai. (A | B) = 61
^ XOR bit. Copy bit nếu chỉ có ở một vế. (A ^ B) = 49
~ Phép đảo bit (Unary). (~A) = -61
<< Dịch trái. A << 2 = 240 (1111 0000)
>> Dịch phải. A >> 2 = 15 (0000 1111)

5. Toán tử gán (Assignment Operators)

Toán tử Mô tả
= Gán đơn giản. C = A + B
+= Cộng và gán. C += A ⇔ C = C + A
-= Trừ và gán. C -= A ⇔ C = C - A
*= Nhân và gán. C *= A ⇔ C = C * A
/= Chia và gán. C /= A ⇔ C = C / A
%= Chia lấy dư và gán. C %= A ⇔ C = C % A
<<= Dịch trái và gán. C <<= 2 ⇔ C = C << 2
>>= Dịch phải và gán. C >>= 2 ⇔ C = C >> 2
&= Bitwise AND và gán. C &= 2 ⇔ C = C & 2
^= Bitwise XOR và gán. C ^= 2 ⇔ C = C ^ 2
|= Bitwise OR và gán. C |= 2 ⇔ C = C | 2

6. Toán tử đặc biệt (Misc Operators)

STT Toán tử & Mô tả
1 sizeof - Trả về kích thước biến. Ví dụ: sizeof(a) với a là int trả về 4
2 Toán tử điều kiện (?:) - Nếu điều kiện true trả về X, ngược lại trả về Y
3 Toán tử phẩy (,) - Thực hiện chuỗi phép toán, giá trị là biểu thức cuối cùng
4 . (chấm) và -> (mũi tên) - Truy cập thành viên class, struct, union
5 () - Ép kiểu (Casting). Ví dụ: int(2.2000) trả về 2
6 & - Toán tử địa chỉ. &a trả về địa chỉ của biến a
7 * - Toán tử con trỏ. *var trỏ đến biến var