Thứ Ba, 4 tháng 7, 2017

[C++] Bài 5: Toán tử trong C++

1. Định nghĩa và phân loại toán tử

       Trong C++, ta định nghĩa toán tử là một phép tính toán học thực hiện tính toán các toán tử để cho ra kết quả (có thể không có giá trị hoặc có nhiều giá trị phụ thuộc vào toán tử sử dụng). Thông thường ta sử dụng các ký tự đặc biệt (+, -, *, /) để định nghĩa một toán tử nào đó. Ta cũng sử dụng tên để định nghĩa toán tử nhưng chỉ dùng với các toán tử không biểu diễn bằng ký tự đặc biệt.
Ví dụ: 
2+3*5;//ta không sử dụng add(2,(mult(3,5)) (!)
       Có 4 loại toán tử: Số học (Arithmetic), Lý luận (Logical), Quan hệ (Relational) và Nhị phân (Bitwise)

2. Các toán tử trong C++

* Toán tử số học (Arithmetic):
        Các toán tử số học bao gồm cộng (+), trừ (-), nhân (*), chia (/), đồng dư (%), tăng (++), giảm (--),... Các phép toán này sử dụng để tính toán số học thông thường. Toán tử chia (/) có hai kiểu chia: chia số nguyên - lấy kết quả là phần nguyên của thương, chia số thực - lấy kết quả là thương số thực. 
Ví dụ: 
chia nguyên: 5/2 = 2
chia thực: 5.0/2.0 = 2.5
       Toán tử (++) và giảm (--) thực hiện cộng thêm 1 (hoặc trừ đi 1) vào toán hạng sử dụng. 
i++ = i+1
i-- = i-1
      Phân biệt giữa i++ (i--) và ++i (--i): 
i++ thực hiện phép toán với i sau đó mới tăng i lên 1 đơn vị (i tăng lên sau khi tính toán).
++i thực hiện tăng i lên sau đó thực hiện các phép toán đối với i (i tăng lên trước khi tính toán).
Ví dụ:
int j = 5;
int k = 5;
int i1, i2;
i1 = j++;
i2 = ++k;
Kết quả thu được sẽ là i1 = 5, i2 = 6, j = 6, k = 6;

* Toán tử Logic (Logical):
       Trong C++, có các toán tử logic như sau: và (&&), hoặc (||), phủ định (!). Các phép toán logic cho ta kết quả đúng (1) hoặc sai (0).
a
b
a&&b
a||b
!a
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
* Toán tử quan hệ (Relation)
Toán tử
     Ý nghĩa
     Lớn hơn
>=
     Lớn hơn hoặc bằng
     Nhỏ hơn
<=
     Nhỏ hơn hoặc bằng
==
     Bằng
!=
     Khác (không bằng)

* Toán tử nhị phân:
Trong C++ ta định nghĩa các phép toán nhị phân như sau:
Toán tử
Kí hiệu
Cách viết
Mô tả
Dịch trái
<< 
x<<y
Các bit trong x dịch trái y bit
Dịch phải
>> 
x>>y
Các bit trong x dịch phải y bit
NOT (bù)
~
~x
Lấy phần bù của các bit trong x
AND (hội)
&
x&y
Từng bit trong x AND với từng bit trong y
OR (tuyển không loại trừ)
|
x | y
Từng bit trong x OR với từng bit trong y
XOR (tuyển có loại trừ)
^
x^y
Từng bit trong x XOR với rừng bit trong y
 Các toán tử NOT, AND, OR, XOR được định nghĩa như sau:
a
b
a & b
a | b
a ^ b
~a
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0








0 nhận xét:

Đăng nhận xét