Toán tử trong C

Toán tử là gì?

Một toán tử là một ký tự được dùng để thực hiện một hoạt động trên một giá trị hoặc một biến. Ví dụ + là toán tử để thực hiện phép cộng.

Toán tử số học của C

Toán tử số học là các ký tự được dùng để thực hiện các phép toán như cộng trừ nhân chia.

Toán tử Ý nghĩa
+ cộng
trừ
* nhân
/ chia
% số dư sau khi chia

Ví dụ 1

#include <stdio.h>
int main()
{
    int a = 9,b = 4, c;

    c = a+b;
    printf("a+b = %d \n",c);
    c = a-b;
    printf("a-b = %d \n",c);
    c = a*b;
    printf("a*b = %d \n",c);
    c = a/b;
    printf("a/b = %d \n",c);
    c = a%b;
    printf("số dư khi a chia cho b = %d \n",c);

    return 0;
}

Kết quả

a+b = 13
a-b = 5
a*b = 36
a/b = 2
số dư khi a chia cho b = 1

Bình thường 9/4=2.25, tuy nhiên kết quả lại cho ra 2. Vì cả ab đều là số nguyên (int), vì vậy kết quả cũng sẽ trả về một số nguyên.

Toán tử % sẽ tính số dư của phép chia. 9 chia 4 = 2 dư 1 vậy nên kết quả sẽ là 1.


Toán tử tăng giảm

C có toán tử tăng ++ và giảm -- để thay đổi giá trị của một toán hạng (biến hoặc hằng số) bởi 1.

++ sẽ làm tăng 1 còn -- sẽ làm giảm 1.

Ví dụ 2

#include <stdio.h>
int main()
{
    int a = 10, b = 100;
    float c = 10.5, d = 100.5;

    printf("++a = %d \n", ++a);
    printf("--b = %d \n", --b);
    printf("++c = %f \n", ++c);
    printf("--d = %f \n", --d);

    return 0;
}

Kết quả

++a = 11
--b = 99
++c = 11.500000
++d = 99.500000

Ở đây ++-- được sử dụng như một tiền tố. Chúng ta có thể hiểu ++a là tăng thêm giá trị của biến a lên 1 đơn vị. Chúng ta cũng có thể sử dụng các toán tử này ở phía sau biến như a++ hoặc a--.


Toán tử gán

Toán tử gán được dùng để gán giá trị vào một biến.

Toán tử Ví dụ Tương tự
= 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

Ví dụ 3

#include <stdio.h>
int main()
{
    int a = 5, c;

    c = a;      // c is 5
    printf("c = %d\n", c);
    c += a;     // c is 10 
    printf("c = %d\n", c);
    c -= a;     // c is 5
    printf("c = %d\n", c);
    c *= a;     // c is 25
    printf("c = %d\n", c);
    c /= a;     // c is 5
    printf("c = %d\n", c);
    c %= a;     // c = 0
    printf("c = %d\n", c);

    return 0;
}

Kết quả

c = 5 
c = 10 
c = 5 
c = 25 
c = 5 
c = 0

Toán tử so sánh

Toán tử so sánh dùng để kiểm tra mối quan hệ giữa các toán hạng. Nếu mối quan hệ là đúng sẽ hoàn trả 1, sai sẽ trả lại 0.

Toán tử Ý nghĩa Ví dụ
== bằng 5 == 3 cho ra 0
> lớn hơn 5 > 3 cho ra 1
< bé hơn 5 < 3 cho ra 0
!= khác nhau 5 != 3 cho ra 1
>= lớn hơn hoặc bằng 5 >= 3 cho ra 1
<= bé hơn hoặc bằng 5 <= 3 cho ra 0

Toán tử logic

Một biểu thức chứa toán tử logic trả về 0 hoặc 1 tùy thuộc vào kết quả biểu thức đúng hay sai. Toán tử logic thường được sử dụng trong việc ra quyết định trong lập trình C.

Toán tử Ý nghĩa Ví dụ
&& AND, đúng nếu tất cả toán hạng đúng nếu c = 5d = 2, biểu thức ((c==5) && (d>5)) cho ra 0.
|| OR, đúng nếu ít nhất 1 toán hạng đúng nếu c = 5d = 2, biểu thức ((c==5)||(d>5)) cho ra 1.
! NOT, đúng nếu toán hạng là 0 nếu c = 5, biểu thức !(c==5) cho ra 0.

Ví dụ

// Working of logical operators

#include <stdio.h>
int main()
{
    int a = 5, b = 5, c = 10, result;

    result = (a == b) && (c > b);
    printf("(a == b) && (c > b) is %d \n", result);
    result = (a == b) && (c < b);
    printf("(a == b) && (c < b) is %d \n", result);
    result = (a == b) || (c < b);
    printf("(a == b) || (c < b) is %d \n", result);
    result = (a != b) || (c < b);
    printf("(a != b) || (c < b) is %d \n", result);
    result = !(a != b);
    printf("!(a == b) is %d \n", result);
    result = !(a == b);
    printf("!(a == b) is %d \n", result);

    return 0;
}

Kết quả

(a == b) && (c > b) is 1 
(a == b) && (c < b) is 0 
(a == b) || (c < b) is 1 
(a != b) || (c < b) is 0 
!(a != b) is 1 
!(a == b) is 0 

Toán tử bitwise

Phép toán bitwise hoạt động trên một hoặc nhiều số nhị phân (binary numerals), hoặc các chuỗi giống số nhị phân. Đây là một phép toán đơn giản và nhanh, được hỗ trợ trực tiếp bởi bộ xử lý (processor). Thông thường các phép tính bitwise nhanh hơn rất nhiều so với phép nhân, phép chia, đôi khi nhanh hơn đáng kể so với phép cộng. Các phép tính bitwise sử dụng ít năng lượng hơn bởi nó ít sử dụng tài nguyên.

Toán tử Ý nghĩa Giải thích
& Bitwise AND Nếu cả 2 bit là 1, giá trị trả về là 1, ngược lại trả về 0.
| Bitwise OR Nếu một trong hai bit là 1, giá trị trả về là 1, ngược lại trả về 0.
^ Bitwise exclusive OR Nếu hai bit khác nhau, giá trị trả về là 1, ngược lại trả về 0.
~ Bitwise complement Đảo ngược tất cả các bit, 0 thành 1 và 1 thành 0.
<< Shift left Dịch chuyển tất cả các bit sang bên trái
>> Shift right Dịch chuyển tất cả các bit sang bên phải ngoại trừ bit đầu tiên.
Series Navigation<< Input Output trong CLệnh if..else trong C >>

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *