Networks Business Online Việt Nam & International VH2

Cách sử dụng toán tử trong lập trình C

Đăng ngày 07 November, 2022 bởi admin
Trong bài này tất cả chúng ta sẽ học cách sử dụng những toán tử trong lập trình C. Toán tử là gì, có những loại toán tử nào tất cả chúng ta thường hay sử dụng. Đây cũng là một phần rất quan trọng, những bạn nên học thật kĩ nhé !

Toán tử là gì ?

Toán tử là một hình tượng mà nói với trình biên dịch triển khai một phép toán học nhất định hoặc thao tác hợp lý. Ngôn ngữ C có sẵn rất nhiều toán tử và cung ứng những kiểu toán tử sau đây :

  • Toán tử số học
  • Toán tử gán
  • Toán tử quan hệ
  • Toán tử logic
  • Toán tử bit
  • Toán tử đặc biệt

Types of Operators in C and C

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

Toán tử số học 2 thành phần

Bảng dưới đây chỉ ra tất cả các toán tử số học được hỗ trợ bởi ngôn ngữ C. Được sử dụng để thực hiện các phép toán: cộng, trừ, nhân, chia,… trên các giá trị số (biến và hằng). Đây là các toán tử cần sự tham gia của 2 giá trị số nên được phân loại là các toán tử 2 ngôi.

Toán tử Ý nghĩa
+ phép toán cộng
phép toán trừ
* phép toán nhân
/ phép toán chia
% phép toán lấy số dư(chỉ áp dụng cho số nguyên)

VD :

#include 
 
int main(){
    int a, b;
    printf("\nNhập số a = "); scanf("%d", &a); 
    // Lưu ý nhập b != 0
    printf("\nNhập số b b = "); scanf("%d", &b); 
    // Phép (+)
    int sum = a + b;
    printf("\nPhép cộng: %d + %d = %d", a, b, sum);
    // Phép (-)
    int sub = a - b;
    printf("\nPhép trừ:%d - %d = %d", a, b, sub);
    // Phép (*)
    int mul = a * b;
    printf("\nPhép nhân:%d * %d = %d", a, b, mul);
    // Phép (/)
    float div = a / (float)b;
    printf("\nPhép chia:%d / %d = %f", a, b, div);
    // Phép (%)
    int mod = a % b;
    printf("\nPhép chia lấy số dư: %d %% %d = %d", a, b, mod);
}

Kết quả

toan tu

Toán tử tăng giảm

Toán tử tăng, giảm là 1 loại toán tử 1 ngôi, gồm có :

  • Toán tử ++: Tăng giá trị lên 1 đơn vị
  • Toán tử --: Giảm giá trị đi 1 đơn vị

Khi đặt toán tử tăng giảm ở một lệnh riêng biệt, chúng cho ra kết quả như nhau.
Nhưng nếu đặt phép tăng, giảm trong một biểu thức lệnh khác kết quả sẽ khác nhau. Xét trường hợp tăng giảm biến a

  • Với a++ và a–: Chương trình sẽ thực hiện lệnh với a sau đó mới thực hiện tăng và giảm biến a
  • Với ++a và –a: Chương trình sẽ thực hiện tăng/giảm biến a sau đó mới thực hiện lệnh

VD :

#include 
 
int main(){
    int a;
    // Toán tử ++ với a = 5
    a = 5;
    a++;
    printf("a++ = %d \n", a);
    a = 5;
    ++a;
    printf("++a = %d \n", a);
    //Toán tử -- với a = 5
    a = 5;
    a--;
    printf("a-- = %d \n", a);
    a = 5;
    --a;
    printf("--a = %d \n", a);

    //Dùng toán tử tăng giảm phía trước và sau biến trong một lệnh khác 
    a = 5; 
    printf("Voi a = %d trong lenh printf \n", a);
    a = 5;
    printf("++a = %d \n", ++a);
    a = 5;
    printf("--a = %d \n", --a);
    a = 5;
    printf("a++ = %d \n", a++);
    a = 5;
    printf("a-- = %d \n", a--);
}

Kết quả

toan tu 2

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

Toán tử gán dùng để gán 1 giá trị cho 1 biến. Cú pháp: = ; hoặc = ;

Ngoài ra toán tử gán còn sử dụng khi sử dụng chính nó để thống kê giám sát với một biến khác .

Toán tử Viết gọn Viết đầy đủ
= a = b a = b
+= a += b a = a+b
-= a -= b a = a-b
*= a *= b a = a*b
/= a /= b a = a/b
%= a %= b a = a%b

VD :

#include 
 
int main(){
    int a = 5, c;
    c = a;      // c is 5
    printf("c = %d\n", c);
    c += a;     // c is 10 => c = c + a
    printf("c = %d\n", c);
    c -= a;     // c is 5 => c = c - a
    printf("c = %d\n", c);
    c *= a;     // c is 25 => c = c * a
    printf("c = %d\n", c);
    c /= a;     // c is 5 => c = c / a
    printf("c = %d\n", c);
    c %= a;     // c = 0 => c = c % a
    printf("c = %d\n", c);
    
    return 0;
}

Kết quả

toan tu 3

Toán tử quan hệ (Relational Operators) hay toán tử so sánh

Toán tử quan hệ hay so sánh sử dụng các phép toán so sánh giữa các số, biến và hằng. Giá trị trả về là logic (true hoặc false tương ứng với 1 hoặc 0)

Các toán tử này sử dụng làm điều kiện kèm theo trong những lệnh so sánh như if, case hoặc while, for sẽ học trong những bài sau .

Toán tử Ý nghĩa Ví dụ
== so sánh bằng 7 == 3 cho kết quả là 0
> so sánh lớn hơn 5 > 1 cho kết quả là 1
< so sánh nhỏ hơn 5 < 2 cho kết quả là 0
!= so sánh khác 5 != 4 cho kết quả là 1
>= lớn hơn hoặc bằng 8 >= 3 cho kết quả là 1
<= nhỏ hơn hoặc bằng 5 <= 0 cho kết quả là 0

VD :

#include 
 
int main(){
 
    int a = 5, b = 5, c = 10;
    printf("%d == %d is %d \n", a, b, a == b);
    printf("%d == %d is %d \n", a, c, a == c);
    printf("%d > %d is %d \n", a, b, a > b);
    printf("%d > %d is %d \n", a, c, a > c);
    printf("%d < %d is %d \n", a, b, a < b);
    printf("%d < %d is %d \n", a, c, a < c);
    printf("%d != %d is %d \n", a, b, a != b);
    printf("%d != %d is %d \n", a, c, a != c);
    printf("%d >= %d is %d \n", a, b, a >= b);
    printf("%d >= %d is %d \n", a, c, a >= c);
    printf("%d <= %d is %d \n", a, b, a <= b);
    printf("%d <= %d is %d \n", a, c, a <= c);
}

Kết quả :

toan tu 6

Toán tử Logic (Logic Operators) hay so sánh logic

Toán tử logic là toán tử sử dụng các mệnh đề logic để so sánh 2 phần tử logic, giá trị trả về là logic (true hoặc false tương ứng với 1 hoặc 0)

Các toán tử này thường được sử dụng để nối những điều kiện kèm theo trong những lệnh so sánh như if, case hoặc while, for .

  • Toán tử &&: là toán tử AND, trả về true khi và chỉ khi tất cả các toán hạng đều đúng.
  • Toán tử ||: là toán tử OR, trả về true khi có ít nhất 1 toán hạng đúng.
  • Toán tử !: là toán tử NOT, phủ định giá trị của toán hạng.

AND

( a > 0 và và a < 10 ). Nếu a lớn hơn 0 và a < 10 thì ra giá trị true, những giá trị còn lại sẽ ra giá trị false. Hoặc nói đơn thuần là thỏa mãn nhu cầu cả 2 điều kiện kèm theo

#include 
 
int main(){
    int a;
    printf("nhap a = ");
    scanf("%d", &a);
    printf("\n%d", (a > 0 && a < 10));
}

Kết quả

toan tu 4 1

OR

( a > 15 | | a < 10 ). Nếu a lớn hơn 5 hoặc a = 10 thì true, nếu không thỏa mãn nhu cầu cả 2 điều kiện kèm theo thì là false

#include 
 
int main(){
    int a;
    printf("nhap a = ");
    scanf("%d", &a);
    printf("\n%d", (a > 15 || a < 10));
}

Kết quả

toan tu 5

NOT

!a. Sẽ trả về 0 nếu a = 1, trả về 1 nếu a = 0. Nó đơn giản chỉ là đảo ngược. Lưu ý khi ta sử dụng NOT với các số lớn hơn 1 thì kết quả cũng tương tư.
Ví dụ: nếu a = 255 thì !a = 0, nếu a = 0 thì !a sẽ bằng 1.

Toán tử thao tác bit ( Bitwise Operators )

Toán tử thao tác bit làm việc trên đơn vị bit, tính toán biểu thức theo từng bit

Phép đảo và dịch

Có 3 toán tử 1 ngôi thao tác theo bit :

  • ~ :  Toán tử đảo, đảo ngược bit 0 thành 1 và ngược lại
  • <<: Toán tử dịch trái. Giá trị toán hạng trái được dịch chuyển sang trái bởi số các bit được xác định bởi toán hạng bên phải
  • >>: Toán tử dịch phải. Giá trị toán hạng trái được dịch chuyển sang phải bởi số các bit được xác định bởi toán hạng bên phải

VD : A = 0011 1100
~ A = 1100 0011 : tương ứng với – 61
A < < 2 = 1111 0000 : tương ứng với 240 A >> 2 = 0000 1111 : tương ứng với 15
Ngoài ra toán tử dịch 1 bit còn được viết gọn như sau : < > A

Phép toán logic

Bảng dưới đây về toán tử thao tác bit 2 ngôi là và ( AND ), | ( OR ), và ^ ( NOR ) như sau :

A B A & B A | B A ^ B
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

VD : Giả sử nếu A = 60 ; và B = 13 ; thì giờ đây trong định dạng nhị phân chúng sẽ là như sau :
A = 0011 1100
B = 0000 1101
— — — — — –
A&B = 0000 1100 : tương ứng là 12
A | B = 0011 1101 : tương ứng là 12
A ^ B = 0011 0001 : tương ứng là 49

#include 
int main()
{
printf("Toan tu thao tac bit \n\n");
int a = 60, b = 13;
printf(" Bitwise AND operation %d & %d : %d\n",a,b,a&b);
printf(" Bitwise OR operation %d | %d : %d\n",a,b,a|b);
printf(" Bitwise XOR operation %d ^ %d : %d\n",a,b,a^b);
printf(" Bitwise ONE'S COMPLEMENT ~ %d operation : %d\n",a,~a);
return 0;
}

Kết quả

toan tu 8

Các toán tử hỗn hợp (Miscellaneous Operators)

Các toán tử đặc biệt quan trọng dùng trong những trường hợp nhất định như

& Trả lại địa chỉ của một biến. &a sẽ cho địa chỉ thực sự của biến a.
* Trỏ tới một biến. *a; sẽ trỏ tới biến a.
? : Biểu thức điều kiện tam phân Nếu điều kiện là true ? thì giá trị X : Nếu không thì giá trị Y

Kết

Nắm rõ đặc tính và cách sử dụng các toán tử trong lập trình C là một việc bất kì lập trình viên nào đều phải học. Đây là một kiến thức rất quan trọng, xuyên xuốt quá trình học lập trình.
Hi vọng các bạn đã hiểu về nó, tiếp tục tới bài tiếp theo của Serie Học lập trình C từ A đến Z

Nếu thấy có ích hãy san sẻ bài viết và tham gia nhóm Nghiện Lập Trình để giao lưu và học hỏi nhé

5/5 - ( 1 bầu chọn )

Source: https://vh2.com.vn
Category : Tin Học