Toán tử đại diện cho một hành động. Ví dụ + là một toán tử đại diện cho phép cộng. Một toán tử làm việc trên hai hoặc nhiều toán hạng và tạo ra một đầu ra. Ví dụ 3 + 4 + 5 ở đây + toán tử hoạt động trên ba toán hạng và tạo ra 12 dưới dạng đầu ra.

Toán tử trong C ++ | Học C++ cơ bản
Toán tử trong C ++ | Học C++ cơ bản

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

1) Các toán tử số học cơ bản
2) Các toán tử gán
3) Các toán tử tự động tăng và giảm tự động
4) Các toán tử logic
5) Các toán tử so sánh (quan hệ)
6) Các toán tử bitwise

7) Các toán tử bậc ba

1) Các toán tử số học cơ bản

Các toán tử số học cơ bản là: +, -, *, /,%
+ dùng để cộng.

 là cho phép trừ.

* là để nhân.

/ là để phân chia.

% dành cho modulo.
Lưu ý : Toán tử Modulo trả về phần còn lại, ví dụ 20% 5 sẽ trả về 0

Ví dụ về các toán tử số học

#include <iostream>
using namespace std;
int main(){
  int num1 = 240;
  int num2 = 40;
  cout<<"num1 + num2: "<<(num1 + num2)<<endl;
  cout<<"num1 - num2: "<<(num1 - num2)<<endl;
  cout<<"num1 * num2: "<<(num1 * num2)<<endl;
  cout<<"num1 / num2: "<<(num1 / num2)<<endl;
  cout<<"num1 % num2: "<<(num1 % num2)<<endl;
  return 0;
}

Kết quả:

num1 + num2: 280
num1 - num2: 200
num1 * num2: 9600
num1 / num2: 6
num1 % num2: 0

2) Toán tử gán

Toán tử phép gán trong C ++ là: =, + =, – =, * =, / =,% =

num2 = num1 sẽ gán giá trị của biến num1 cho biến.

num2 + = num1 bằng num2 = num2 + num1

num2- = num1 bằng num2 = num2-num1

num2 * = num1 bằng num2 = num2 * num1

num2 / = num1 bằng num2 = num2 / num1

num2% = num1 bằng num2 = num2% num1

Ví dụ về các toán tử gán

#include <iostream>
using namespace std;
int main(){
 int num1 = 240;
 int num2 = 40;
 num2 = num1;
 cout<<"= Output: "<<num2<<endl;
 num2 += num1;
 cout<<"+= Output: "<<num2<<endl;
 num2 -= num1;
 cout<<"-= Output: "<<num2<<endl;
 num2 *= num1;      
 cout<<"*= Output: "<<num2<<endl;
 num2 /= num1;      
 cout<<"/= Output: "<<num2<<endl;
 num2 %= num1;      
 cout<<"%= Output: "<<num2<<endl;
 return 0;
}

Kết quả:

= Output: 240
+= Output: 480
-= Output: 240
*= Output: 57600
/= Output: 240
%= Output: 0

3) Các toán tử tự động tăng và giảm tự động

++ và –
num ++ tương đương với num = num + 1;

num–- tương đương với num = num-1;

Ví dụ về Toán tử tự động tăng và giảm tự động

<iostream> using namespace std ; int main () { int num1 = 240 ; int num2 = 40 ; 
  num1 ++; num2 -; 
  cout << "num1 ++ la:" << num1 << endl ; 
  cout << "num2-- is:" << num2 ; trả về 0 ; }

Kết quả:

num1 ++ : 241 
num2 - : 39

4) Toán tử logic

Các toán tử logic được sử dụng với các biến nhị phân. Chúng chủ yếu được sử dụng trong các câu lệnh điều kiện và vòng lặp để đánh giá một điều kiện.

Các toán tử logic trong C ++ là: &&, ||,!

Giả sử chúng ta có hai biến boolean b1 và b2.

b1 && b2 sẽ trả về true nếu cả b1 và b2 đều đúng, nếu không nó sẽ trả về false.

b1 || b2 sẽ trả về false nếu cả b1 và b2 là false nếu không nó sẽ trả về true.

! b1 sẽ trả về ngược lại với b1, điều đó có nghĩa là nó sẽ đúng nếu b1 là false và nó sẽ trả về false nếu b1 là true.

Ví dụ về các toán tử logic

<iostream>
using namespace std;
int main(){
   bool b1 = true;
   bool b2 = false;
   cout<<"b1 && b2: "<<(b1&&b2)<<endl;
   cout<<"b1 || b2: "<<(b1||b2)<<endl;
   cout<<"!(b1 && b2): "<<!(b1&&b2);
   return 0;
}

Kết quả:

b1 && b2: 0
b1 || b2: 1
!(b1 && b2): 1

5) Toán tử quan hệ

Chúng ta có sáu toán tử quan hệ trong C ++: ==,! =,>, <,> =, <=

== trả về true nếu cả phía bên trái và bên phải đều bằng nhau

! = trả về true nếu bên trái không bằng bên phải của toán tử.

> trả về true nếu bên trái lớn hơn bên phải.

< trả về true nếu bên trái nhỏ hơn bên phải.

> = trả về true nếu vế trái lớn hơn hoặc bằng vế phải.

<= trả về true nếu bên trái nhỏ hơn hoặc bằng bên phải.

Ví dụ về toán tử quan hệ

<iostream>
using namespace std;
int main(){
   int num1 = 240;
   int num2 =40;
   if (num1==num2) {
      cout<<"num1 and num2 are equal"<<endl;
   }
   else{
      cout<<"num1 and num2 are not equal"<<endl;
   }
   if( num1 != num2 ){
      cout<<"num1 and num2 are not equal"<<endl;
   }
   else{ 
      cout<<"num1 and num2 are equal"<<endl;
   }
   if( num1 > num2 ){
      cout<<"num1 is greater than num2"<<endl;
   }
   else{
      cout<<"num1 is not greater than num2"<<endl;
   }
   if( num1 >= num2 ){ 
      cout<<"num1 is greater than or equal to num2"<<endl;
   }
   else{
      cout<<"num1 is less than num2"<<endl;
   }
   if( num1 < num2 ){
      cout<<"num1 is less than num2"<<endl;
   }
   else{
      cout<<"num1 is not less than num2"<<endl;
   }
   if( num1 <= num2){
      cout<<"num1 is less than or equal to num2"<<endl;
   }
   else{
      cout<<"num1 is greater than num2"<<endl;
   }
   return 0;
}

Kết quả:

num1 and num2 are not equal
num1 and num2 are not equal
num1 is greater than num2
num1 is greater than or equal to num2
num1 is not less than num2
num1 is greater than num2

6) Toán tử Bitwise

Có sáu toán tử bitwise: &, |, ^, ~, <<, >>

Toán tử bitwise thực hiện xử lý từng bit.
num1 & num2 so sánh các bit tương ứng của num1 và num2 và tạo ra 1 nếu cả hai bit bằng nhau, nếu không, nó sẽ trả về 0. Trong trường hợp của chúng ta, nó sẽ trả về: 2 là 00000010 vì ở dạng nhị phân của num1 và num2 chỉ có bit cuối cùng thứ hai là khớp .

num1 | num2 so sánh các bit tương ứng của num1 và num2 và tạo ra 1 nếu một trong hai bit là 1, nếu không, nó sẽ trả về 0. Trong trường hợp của chúng ta, nó sẽ trả về 31 là 00011111

num1 ^ num2 so sánh các bit tương ứng của num1 và num2 và tạo ra 1 nếu chúng không bằng nhau, nếu không nó sẽ trả về 0. Trong ví dụ của chúng tôi, nó sẽ trả về 29 tương đương với 00011101

~ num1 là một toán tử bổ sung chỉ thay đổi bit từ 0 thành 1 và 1 thành 0. Trong ví dụ của chúng tôi, nó sẽ trả về -12 được ký 8 bit tương đương với 11110100

num1 << 2 là toán tử dịch chuyển trái di chuyển các bit sang trái, loại bỏ bit ngoài cùng bên trái và gán giá trị cho bit ngoài cùng bên phải là 0. Trong trường hợp của chúng tôi, đầu ra là 44 tương đương với 00101100

Lưu ý: Trong ví dụ dưới đây, chúng tôi đang cung cấp 2 ở phía bên phải của toán tử shift này, đó là lý do các bit đang di chuyển hai vị trí sang phía bên trái. Chúng ta có thể thay đổi số này và các bit sẽ được di chuyển theo số bit được chỉ định ở phía bên phải của toán tử. Tương tự cũng áp dụng cho toán tử bên phải.

num1 >> 2 là toán tử dịch phải di chuyển các bit sang phải, loại bỏ bit ngoài cùng bên phải và gán giá trị cho bit ngoài cùng bên trái là 0. Trong trường hợp của chúng tôi, đầu ra là 2 tương đương với 00000010

Ví dụ về các toán tử Bitwise

<iostream>
using namespace std;
int main(){
   int num1 = 11;  /* 11 = 00001011 */
   int num2 = 22;  /* 22 = 00010110 */ 
   int result = 0;
   result = num1 & num2;
   cout<<"num1 & num2: "<<result<<endl;
   result = num1 | num2;
   cout<<"num1 | num2: "<<result<<endl;
   result = num1 ^ num2;
   cout<<"num1 ^ num2: "<<result<<endl;
   result = ~num1;
   cout<<"~num1: "<<result<<endl;
   result = num1 << 2;
   cout<<"num1 << 2: "<<result<<endl;
   result = num1 >> 2;
   cout<<"num1 >> 2: "<<result;
   return 0;
}

Kết quả:

num1 & num2: 2
num1 | num2: 31
num1 ^ num2: 29
~num1: -12
num1 << 2: 44 num1 >> 2: 2

Ưu tiên toán tử trong C ++

Điều này xác định toán tử nào cần được đánh giá đầu tiên nếu một biểu thức có nhiều hơn một toán tử. Toán tử có mức độ ưu tiên cao hơn ở trên cùng và mức độ ưu tiên thấp hơn ở phía dưới.

Toán tử đơn vị
++ – -! ~

Số nhân
* /%

Phụ gia
+ –

Ca
<< >> >>>

Quan hệ
>> = <<=

Equality
==! =

Bitwise AND

&
Bitwise XOR
^

Bitwise OR

|

Logic AND
&&

Logic HAY
||

Đệ tam
?:

Phép gán
= + = – = * = / =% =>> = <<= & = ^ = | =

LEAVE A REPLY

Please enter your comment!
Please enter your name here