- vừa được xem lúc

[Lập trình C++ cơ bản] Bài 2: Toán tử và Toán hạng

0 0 18

Người đăng: Viblo Algorithm

Theo Viblo Asia

I. Toán tử và Toán hạng

Toán tử là các biểu tượng, các kí hiệu mà chỉ cho chương trình dịch biết rằng nó cần thực hiện thao tác toán học hay logic nào. C++ cung cấp rất nhiều toán tử có sẵn, cụ thể được chia làm 66 loại:

  • Toán tử số học.
  • Toán tử quan hệ.
  • Toán tử logic.
  • Toán tử gán.
  • Toán tử so sánh bit.
  • Toán tử hỗn hợp.

1. Toán tử số học và Toán hạng

Toán tử số học là các toán tử thực hiện các tính toán số học, còn toán hạng đơn giản chỉ là đối tượng thực hiện tính toán số học. Kết quả của phép toán sẽ được tự động gán theo kiểu dữ liệu của các toán hạng. Giả sử ta có hai số kiểu thực a=5.0,b=10.0\text{a} = 5.0, \text{b} = 10.0 (gọi là các toán hạng), các toán tử số học sẽ tính toán chúng theo bảng dưới đây:


Lưu ý, đối với toán tử tăng ++ và toán tử giảm--, có sự khác biệt khi ta đặt chúng đằng trước hay đằng sau toán hạng:

  • Đặt đằng trước (dạng prefix): Việc tăng/giảm toán hạng sẽ được thực hiện trước câu lệnh.
  • Đặt đằng sau (dạng postfix): Việt tăng/giảm toán hạng sẽ được thực hiện sau câu lệnh.

Ví dụ dưới đây sẽ phân tích điểm khác nhau giữa dạng prefix và dạng postfix:

int main()
{ int a = 20; cout << ++a << endl; // a tăng lên 21 trước rồi mới in ra. cout << a++; // in ra a trước, sau đó tăng a lên 22. cout << a; // a lúc này mới mang giá trị 22. return 0;
}

Chạy chương trình trên sẽ cho ra kết quả:

21
21
22

2. Các loại toán tử khác

Ngoài toán tử số học, trong C++ còn có nhiều loại toán tử khác. Tuy nhiên, do phạm vi kiến thức của bài học này nên mình sẽ chỉ giới thiệu sơ qua các loại toán tử cùng với một số ví dụ rất đơn giản. Cách sử dụng chi tiết của các loại toán tử này sẽ được đề cập đến trong những bài học khác chuyên sâu hơn.

2.1. Toán tử quan hệ

Các loại toán tử quan hệ sẽ xác định quan hệ giữa các toán hạng, và trả ra kết quả là quan hệ đó đúng (true) hay không đúng (false). Bảng dưới đây thể hiện các quan hệ giữa hai toán hạng a=5,b=10a=5, b=10:

2.2. Toán tử logic

Các toán tử logic sẽ xác định quan hệ về mặt đúng/sai giữa các toán hạng logic. Giả sử ta có hai toán hạng logic A=trueA=\text{true}B=falseB=\text{false}, bảng dưới đây thể hiện quan hệ logic giữa chúng:

2.3. Toán tử so sánh bit

Dữ liệu trong máy tính đều được mã hóa sang dạng các bit nhị phân 010 - 1. Các toán tử so sánh bit sẽ làm việc trên các bit nhị phân. Bảng dưới đây thể hiện ý nghĩa của các toán tử so sánh bit với các cặp bit 010-1:


Giả sử ta có hai toán hạng aabb, toán tử so sánh bit sẽ đổi aabb sang hệ nhị phân và tiến hành so sánh từng bit với nhau, sau đó gộp kết quả lại và trả ra kết quả ứng với kiểu dữ liệu của aabb. Lấy ví dụ với a=60,b=13a = 60, b=13, ta có:

  • a=001101002a = 0011 0100_2
  • b=000011012b = 0000 1101_2

Bảng dưới đây thể hiện kết quả so sánh bit giữa aabb:

2.4. Toán tử gán

Toán tử gán cho phép gán một biến bằng một biểu thức nào đó. Các toán tử gán được thể hiện trong bảng dưới đây:

2.5. Toán tử hỗn hợp

Ngoài 55 loại toán tử kể trên, còn có một số toán tử hỗn hợp được hỗ trợ trong C++. Dưới đây là bảng liệt kê các toán tử hỗn hợp quan trọng, chi tiết về cách hoạt động của chúng sẽ được đề cập trong các bài học cụ thể:

II. Thứ tự ưu tiên toán tử và trật tự kết hợp

Thứ tự ưu tiên toán tử xác định cách mà biểu thức được tính toán. Những toán tử có độ ưu tiên cao hơn sẽ phải được thực hiện trước trong quá trình chạy chương trình. Bảng dưới đây liệt kê thứ tự ưu tiên của các toán tử trong cùng nhóm, và giữa các nhóm với nhau. Nhóm toán tử với quyền ưu tiên cao hơn sẽ xuất hiện ở phía trên của bảng:

III. Tài liệu tham khảo

Bình luận

Bài viết tương tự

- vừa được xem lúc

Thuật toán quay lui (Backtracking)

Quay lui là một kĩ thuật thiết kế giải thuật dựa trên đệ quy. Ý tưởng của quay lui là tìm lời giải từng bước, mỗi bước chọn một trong số các lựa chọn khả dĩ và đệ quy.

0 0 51

- vừa được xem lúc

Các thuật toán cơ bản trong AI - Phân biệt Best First Search và Uniform Cost Search (UCS)

Nếu bạn từng đọc các thuật toán trong AI (Artificial Intelligence - Trí tuệ nhân tạo), rất có thể bạn từng nghe qua về các thuật toán tìm kiếm cơ bản: UCS (thuộc chiến lược tìm kiếm mù) và Best First Search (thuộc chiến lược tìm kiếm kinh nghiệm). Khác nhau rõ từ khâu phân loại rồi, thế nhưng hai th

0 0 169

- vừa được xem lúc

Sử dụng vector trong lập trình C++ - giải bài toán lập trình muôn thủa

Chào buổi tối mọi người, hôm nay lang thang trên mạng bắt gặp bài toán quen thuộc một thời của quãng đường sinh viên IT. Đấy chính là câu số 1 trong đề thi dưới đây:.

0 0 54

- vừa được xem lúc

MÔ PHỎNG THUẬT TOÁN VƯƠNG HẠO TRONG PROLOG

. 1. Các luật suy diễn trong thuật toán Vương Hạo. Luật 1: Chuyển vế các giả thuyết và kết luận ở dạng phủ định. Ví dụ: p v q, !(r ^ s), !q, p v r -> s, !p <=> p v q, p v r, p -> s, r ^ s, q.

0 0 89

- vừa được xem lúc

A* Search Algorithm

What is A* Search Algorithm. How it works. . Explanation.

0 0 58

- vừa được xem lúc

Python: Jump Search

Search là một từ khóa khá là quen thuộc đối với chúng ta. Hiểu theo đúng nghĩa đen của nó chính là "Tìm kiếm".

0 0 50