Bỏ qua để đến nội dung

Các toán tử số học

C++ hỗ trợ đầy đủ các toán tử số học cơ bản để tính toán trên số nguyên và số thực.

Toán tửÝ nghĩaVí dụ
+Cộng5 + 3 → 8
-Trừ5 - 3 → 2
*Nhân5 * 3 → 15
/Chia5 / 3 → 1 (số nguyên!)
%Chia lấy dư (modulo)5 % 3 → 2
++Tăng 1 đơn vịa++ hoặc ++a
--Giảm 1 đơn vịa-- hoặc --a

Lưu ý: C++ không có toán tử lũy thừa. Muốn tính lũy thừa, dùng hàm pow() từ thư viện <cmath> (xem bài tiếp theo).

#include <iostream>
int main() {
int a = 10;
int b = 3;
std::cout << "a + b = " << (a + b) << std::endl; // 13
std::cout << "a - b = " << (a - b) << std::endl; // 7
std::cout << "a * b = " << (a * b) << std::endl; // 30
std::cout << "a / b = " << (a / b) << std::endl; // 3 (chia nguyên!)
std::cout << "a % b = " << (a % b) << std::endl; // 1
return 0;
}
int x = 7;
int y = 2;
std::cout << x / y << std::endl; // 3 (KHÔNG phải 3.5!)
double result = x / y;
std::cout << result << std::endl; // Vẫn là 3! Vì phép chia diễn ra TRƯỚC khi gán
// Cách đúng: ép kiểu một trong hai toán hạng sang double trước khi chia
double correct = (double)x / y;
std::cout << correct << std::endl; // 3.5

Toán tử tăng/giảm: tiền tố vs hậu tố

Phần tiêu đề “Toán tử tăng/giảm: tiền tố vs hậu tố”

C++ (kế thừa từ C) có hai dạng ++/--, khác nhau về thời điểm giá trị được trả về:

int a = 5;
std::cout << a++ << std::endl; // In ra 5, SAU ĐÓ mới tăng a lên 6 (hậu tố - postfix)
std::cout << a << std::endl; // 6
int b = 5;
std::cout << ++b << std::endl; // Tăng b lên 6 TRƯỚC, rồi mới in ra 6 (tiền tố - prefix)
std::cout << b << std::endl; // 6

C++ hỗ trợ các toán tử gán rút gọn để viết ngắn gọn hơn:

int a = 10;
a += 5; // a = a + 5 → 15
a -= 3; // a = a - 3 → 12
a *= 2; // a = a * 2 → 24
a /= 4; // a = a / 4 → 6
a %= 4; // a = a % 4 → 2
  • C++ có đầy đủ +, -, *, /, %, nhưng không có toán tử lũy thừa (dùng pow() thay thế)
  • Phép chia / giữa hai số nguyên luôn cho ra số nguyên, phần thập phân bị cắt bỏ
  • ++/-- có hai dạng tiền tố và hậu tố, khác nhau về thời điểm trả về giá trị
  • Toán tử gán kết hợp (+=, -=, *=, /=, %=) giúp viết code ngắn gọn hơn