SlideShare a Scribd company logo
4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 1/17
Các toán tử
Trong lập trình C, các toán tử có thể được phân ra thành các nhóm sau:
Toán tử số học
Toán tử so sánh
Toán tử luận lý
Toán tử bitwise
Toán tử gán
Các toán tử khác
Toán tử số học
Toán tử số học là những toán tử thực hiện các phép tính như cộng, trừ,
nhân, chia trên các toán hạng.
Các toán tử trong nhóm này được liệt kê trong bảng sau:
Toán tử Mô tả Cú pháp
+ Cộng a + b hoặc  +a
- Trừ a - b hoặc  -a
* Nhân a * b
/ Chia a / b
4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 2/17
% Modulo - chia lấy phần dư a % b
++ Tăng 1 a++ hoặc  ++a
-- Giảm 1 a-- hoặc  --a
Với các toán tử  ++ và  --, vị trí của chúng (trước hoặc sau toán hạng) có ý
nghĩa khác nhau:
Đứng trước: với  ++a,  a sẽ tăng lên  1, rồi sau đó biểu thức mới được
thực hiện.
Đứng sau: với  a++, thì biểu thức sẽ được thực hiện với giá trị hiện tại
của  a, sau đó  a mới được tăng lên  1. Cụ thể được cho trong bảng
sau, với giá trị ban đầu của  a là  1:
Vị trí Toán tử
Ví dụ
Biểu thức
Kết quả
a b
Trước ++ b = ++a; 2 2
Sau ++ b = a++; 2 1
Trước -- b = --a; 0 0
Sau -- b = a--; 0 1
Ví dụ sau minh họa cách sử dụng các toán tử trong nhóm toán tử số học:
4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 3/17
#include <stdio.h>
int main()
{
int a = 11;
int b = 5;
int c ;
c = a + b; // c = 16
printf("a + b = %dn", c);
c = a - b; // c = 6
printf("a - b = %dn", c);
c = a * b; // c = 55
printf("a * b = %dn", c);
c = a / b; // c = 2
printf("a / b = %dn", c);
c = a % b; // c = 1
printf("a %% b = %dn", c);
printf("++a = %dn", ++a);
printf("--a = %dn", --a);
return 0;
}
Sau khi biên dịch và chạy, kết quả sau sẽ được xuất ra:
4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 4/17
a + b = 16
a - b = 6
a * b = 55
a / b = 2
a % b = 1
++a = 12
--a = 11
Toán tử so sánh
Toán tử so sánh (hay toán tử quan hệ) là những toán tử dùng để kiểm tra
mối quan hệ giữa hai toán hạng. Bảng sau mô tả chi tiết các toán tử nằm
trong nhóm này:
Toán tử Mô tả Cú pháp
Ví dụ
a b Kết quả
== Bằng a == b 5 5 1
!= Không bằng a != b 5 4 1
> Lớn hơn a > b 5 4 1
< Nhỏ hơn a < b 4 5 1
>= Lớn hơn hoặc bằng a >= b 5 5 1
<= Nhỏ hơn hoặc bằng a <= b 5 5 1
Ví dụ sau minh họa cách sử dụng các toán tử trong nhóm toán tử so sánh:
4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 5/17
#include <stdio.h>
int main()
{
int a = 5;
int b = 5;
int c = 4;
int d = 6;
printf("%d == %d = %d n", a, b, a == b); // true
printf("%d == %d = %d n", a, c, a == c); // false
printf("%d == %d = %d n", a, d, a == d); // false
printf("%d != %d = %d n", a, b, a != b); // false
printf("%d != %d = %d n", a, c, a != c); // true
printf("%d != %d = %d n", a, d, a != d); // true
printf("%d > %d = %d n", a, b, a > b); // false
printf("%d > %d = %d n", a, c, a > c); // true
printf("%d > %d = %d n", a, d, a > d); // false
printf("%d < %d = %d n", a, b, a < b); // false
printf("%d < %d = %d n", a, c, a < c); // false
printf("%d < %d = %d n", a, d, a < d); // true
printf("%d >= %d = %d n", a, b, a >= b); // true
printf("%d >= %d = %d n", a, c, a >= c); // true
printf("%d >= %d = %d n", a, d, a >= d); // false

4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 6/17
printf("%d <= %d = %d n", a, b, a <= b); // true
printf("%d <= %d = %d n", a, c, a <= c); // false
printf("%d <= %d = %d n", a, d, a <= d); // true
return 0;
}
Sau khi biên dịch và chạy, sẽ nhận được kết quả sau đây:
5 == 5 = 1
5 == 4 = 0
5 == 6 = 0
5 != 5 = 0
5 != 4 = 1
5 != 6 = 1
5 > 5 = 0
5 > 4 = 1
5 > 6 = 0
5 < 5 = 0
5 < 4 = 0
5 < 6 = 1
5 >= 5 = 1
5 >= 4 = 1
5 >= 6 = 0
5 <= 5 = 1
5 <= 4 = 0
5 <= 6 = 1
Toán tử luận lý

4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 7/17
Các toán tử luận lý được sử dụng trong C được liệt kê cụ thể ở bảng sau:
Toán
tử
Mô tả Cú pháp
Ví dụ
a b Kết
quả
&&
Luận lý AND.  true khi và chỉ khi các toán
hạng đều là  true
a && b
0 0 0
1 0 0
1 1 1
||
Luận lý OR.  true khi một trong hai toán
hạng là  true
a && b
0 0 0
1 0 1
1 1 1
! Luận lý NOT.  true khi toán hạng là  false !a
1 0
0 1
Ví dụ sau minh họa cách sử dụng các toán tử trong nhóm toán tử luận lý:

4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 8/17
#include <stdio.h>
int main()
{
int a = 5;
int b = 5;
int c = 6;
printf("(a > b) && (b > c) = %d n", (a > b) && (b > c));
printf("(a == b) && (a > c) = %d n", (a == b) && (a > c));
printf("(a == b) && (b < c) = %d n", (a == b) && (b < c));
printf("(a > b) || (b > c) = %d n", (a > b) || (b > c));
printf("(a == b) || (a > c) = %d n", (a == b) || (a > c));
printf("(a == b) || (b < c) = %d n", (a == b) || (b < c));
printf("!(a == b) = %d n", !(a == b));
printf("!(b == c) = %d n", !(b == c));
printf("!a = %d n", !a);
return 0;
}
Sau khi biên dịch và chạy, sẽ được kết quả như sau:

4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 9/17
(a > b) && (b > c) = 0
(a == b) && (a > c) = 0
(a == b) && (b < c) = 1
(a > b) || (b > c) = 0
(a == b) || (a > c) = 1
(a == b) || (b < c) = 1
!(a == b) = 0
!(b == c) = 1
!a = 0
Toán tử bitwise
Các toán tử bitwise làm việc trên bit. Bảng dưới đây mô tả chi tiết các toán
tử bitwise trong C:
Toán
tử
Mô tả
Cú
pháp
Ví dụ
a b Kết quả
~ Bitwise
NOT
~a 0b10100011 0b01011100
& Bitwise
AND
a & b 0b10100011 0b10101101 0b10100001
| Bitwise OR a | b 0b10100011 0b10101101 0b10101111
^ Bitwise
XOR
a ^ b 0b10100011 0b10101101 0b00001110
<< Dịch trái a << b 0b10100011 2 0b10001100

4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 10/17
>> Dịch phải a >> b 0b10100011 2 0b10100000
Ví dụ sau đây sẽ minh họa cách sử dụng các toán tử trong nhóm toán tử
bitwise:
#include <stdio.h>
int main()
{
unsigned char a = 19; /* 19 = 0b0001 0011 */
unsigned char b = 85; /* 85 = 0b0101 0101 */
char c; /* ----------- */
c = ~a; /*-20 = 0b1110 1100 */
printf("~a = %dn", c );
c = a & b; /* 17 = 0b0001 0001 */
printf("a & b = %dn", c );
c = a | b; /* 87 = 0b0101 0111 */
printf("a | b = %dn", c );
c = a ^ b; /* 70 = 0b0100 0110 */
printf("a ^ b = %dn", c );
c = a << 2; /* 76 = 0b0100 1100 */
printf("a << 2 = %dn", c );
c = a >> 2; /* 4 = 0b0000 0100 */
printf("a << 2 = %dn", c );
return 0;
}

4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 11/17
Sau khi biên dịch và chạy, sẽ được kết quả như sau:
~a = -20
a & b = 17
a | b = 87
a ^ b = 70
a << 2 = 76
a << 2 = 4
Toán tử gán
Toán tử gán là những toán tử được dùng để gán giá trị cho biến. Bảng sau
liệt kê các toán tử gán được sử dụng trong C:
Toán
tử
Mô tả Cú pháp
Tương
đương với
= Gán [giá trị của] toán hạng bên phải cho
toán hạng bên trái.
a = b a = b
+= Gán tổng toán hạng bên trái và toán
hạng bên phải cho toán hạng bên trái.
a += b a = a + b
-= Gán hiệu toán hạng bên trái và toán
hạng bên phải cho toán hạng bên trái.
a -= b a = a - b
*= Gán tích toán hạng bên trái và toán hạng
bên phải cho toán hạng bên trái.
a *= b a = a * b
/= Gán thương toán hạng bên trái và toán
hạng bên phải cho toán hạng bên trái.
a /= b a = a / b

4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 12/17
%= Phần dư của phép chia toán hạng bên
trái cho toán hạng bên phải và gán cho
toán hạng bên trái.
a %= b a = a % b
&= Gán kết quả của phép AND bit toán hạng
bên trái và toán hạng bên phải cho toán
hạng bên trái.
a &= b a = a & b
|= Gán kết quả của phép OR bit toán hạng
bên trái và toán hạng bên phải cho toán
hạng bên trái.
a |= b a = a | b
^= Gán kết quả của phép XOR bit toán hạng
bên trái và toán hạng bên phải cho toán
hạng bên trái.
a ^= b a = a ^ b
<<= Gán kết quả của phép dịch bit trái toán
hạng bên trái số toán hạng bên phải lần
cho toán hạng bên trái.
a <<= b a = a << b
>>= Gán kết quả của phép dịch bit phải toán
hạng bên trái số toán hạng bên phải lần
cho toán hạng bên trái.
a >>= b a = a >> b
Ví dụ sau sẽ minh họa cách sử dụng các toán tử trong nhóm toán tử gán:

4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 13/17
#include <stdio.h>
int main()
{
int a = 5;
int b;
b = a; /* b = 5 */
printf("b = a; b = %dn", b );
b += a; /* b = 10 */
printf("b += a = %dn", b );
b -= a; /* b = 5 */
printf("b -= a; b = %dn", b );
b *= a; /* b = 25 */
printf("b *= a; b = %dn", b );
b /= a; /* b = 5 */
printf("b /= a; b = %dn", b );
b %= a; /* b = 0 */
printf("b %%= a; b = %dn", b );
b = 7; /* 0000 0111 */
b <<= 2; /* b = 28 (0001 1100) */
printf("b <<= 2; b = %dn", b );
b >>= 2; /* b = 7 (0000 0111) */
printf("b >>= 2; b = %dn", b );
b &= 3; /* b = 3 (0000 0011) */
printf("b &= 3; b = %dn", b );
b ^= 2; /* b = 1 (0000 0001) */
printf("b ^= 2; b = %dn", b );
b |= 4; /* b = 5 (0000 0101) */

4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 14/17
printf("b |= 2; b = %dn", b );
return 0;
}
Sau khi biên dịch và chạy, sẽ được kết quả như sau:
b = a; b = 5
b += a = 10
b -= a; b = 5
b *= a; b = 25
b /= a; b = 5
b %= a; b = 0
b <<= 2; b = 28
b >>= 2; b = 7
b &= 3; b = 3
b ^= 2; b = 1
b |= 2; b = 5
Các toán tử khác
Trong C, ngoài các toán tử đã được đưa ra ở trên, còn một số toán tử quan
trọng khác cũng thường hay được sử dụng:
Toán tử phẩy (comma operator)
Toán tử phẩy được sử dụng để liên kết các biểu thức có liên quan với nhau,
thường được sử dụng nhiều trong khai báo biến, ví dụ:

4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 15/17
int a, b, c;
Toán tử sizeof
Toán tử này đã được đề cập ở phần trước (/lap-trinh-c-kieu-du-lieu/#toan-
tu-sizeof), được dùng để trả về kích cỡ của dữ liệu (kiểu dữ liệu, biến, hằng
...).
Toán tử ternary (?:)
?: là một toán tử điều kiện, được sử dụng với cú pháp sau:
conditional_expression ? expression_if_true : expression_if_false
trong đó:
conditional_expression là một biểu thức điều kiện
expression_if_true là biểu thức sẽ được đánh giá (evaluated) nếu
biểu thức điều kiện đúng.
expression_if_false là biểu thức sẽ được đánh giá nếu biều thức
điều kiện sai.
Ví dụ sau minh họa cách sử dụng toán tử  ?::

4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 16/17
Bài trước (/lap-trinh-c/cac-ham-nhap-xuat/)
#include <stdio.h>
int main()
{
char week_day;
char opening_time;
printf("Enter a day of the week [1-7]: ");
scanf("%d", &week_day);
/* If the day is Sunday (1) or Saturday (7), the opening time
/* Else, the opening time will be 8:00 a.m. */
opening_time = (week_day == 1 || week_day == 7) ? 13 : 8;
printf("Opening time: %dhn", opening_time);
return 0;
}
Sau khi biên dịch và chạy, sẽ nhận được kết quả sau:
Enter a day of the week [1-7]: 1
Opening time: 13h
Ngoài ra còn một số toán tử khác như  *,  &,  .,  ->,  [] sẽ được trình bày ở
các bài sau.
Danh sách bài học (/lap-trinh-c/)



4/14/2017 Các toán tử trong C
https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 17/17
Bài sau  (/lap-trinh-c/dieu-kien-re-nhanh/)
Cập nhật lần cuối vào 10-04-2017 11:25.



More Related Content

PDF
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
PDF
Bài mẫu tiểu luận môn về Apple, HAY
PPTX
marketing chương 6: phân phối
PPTX
Luận cương chính trị 10/1930 - Giải quyết hạn chế & Phát triển
PDF
BẢNG TRA PHÂN PHỐI CHI-SQUARE
PPT
Chương 4 phân đoạn thị trường lựa chọn thị trường mục tiêu và định vị sản phẩm
PPT
tt-hcm-chuong-3.ppt
PDF
Báo cáo nhập môn kỹ thuật ngành điện copy
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
Bài mẫu tiểu luận môn về Apple, HAY
marketing chương 6: phân phối
Luận cương chính trị 10/1930 - Giải quyết hạn chế & Phát triển
BẢNG TRA PHÂN PHỐI CHI-SQUARE
Chương 4 phân đoạn thị trường lựa chọn thị trường mục tiêu và định vị sản phẩm
tt-hcm-chuong-3.ppt
Báo cáo nhập môn kỹ thuật ngành điện copy

What's hot (20)

PDF
đề Cương quản trị chuỗi cung ứng preview
DOCX
Tiểu luận tư tưởng hồ chí minh về con người mới
PDF
Câu hỏi trắc nghiệm Microsoft Excel
DOCX
Tổng Hợp 200 Đề Tài Tiểu Luận Môn Môi Trường Và Con Người Từ Sinh Viên Giỏi
PDF
Hệ thống thông tin quản lý - Bài 2 Tổng quan về hệ thống thông tin (phần 2)
DOCX
Bi kiep ktvm phan 2
DOC
Giao tiếp trong Kinh doanh
PDF
[123doc.vn] on-tap-mon-quan-tri-san-xuat-theo-de-thi-co-dap-an
PDF
Baigiang xs tk tuan 1
DOCX
Đề tài: Giải pháp nâng cao hiệu quả sử dụng Internet của sinh viên
PDF
đề Thi trắc nghiệm kinh tế vĩ mô (có đáp án)
PPT
Hành vi mua của khách hàng
DOCX
Bài thảo luận nhóm chương 4.5.6.7 Môn tư tưởng Hồ Chí Minh
PDF
PHƯƠNG PHÁP DỰ BÁO CHUỖI THỜI GIAN
DOC
Chiến dịch Tây Nguyên trong chiến thắng chống Mĩ cứu nước (TẢI FREE ZALO 093 ...
PPTX
Truyền thông trong quản trị
DOC
Tiểu luận tư tưởng hồ chí minh về đạo đức cách mạng
PDF
VIẾT KẾ HOẠCH HÀNH ĐỘNG
 
DOCX
Nhận thức rủi ro tác động đến ý định mua sắm trực tuyến của khách hàng38 201...
DOC
Trắc nghiệm môn nguyên lý kế toán (có đa)
đề Cương quản trị chuỗi cung ứng preview
Tiểu luận tư tưởng hồ chí minh về con người mới
Câu hỏi trắc nghiệm Microsoft Excel
Tổng Hợp 200 Đề Tài Tiểu Luận Môn Môi Trường Và Con Người Từ Sinh Viên Giỏi
Hệ thống thông tin quản lý - Bài 2 Tổng quan về hệ thống thông tin (phần 2)
Bi kiep ktvm phan 2
Giao tiếp trong Kinh doanh
[123doc.vn] on-tap-mon-quan-tri-san-xuat-theo-de-thi-co-dap-an
Baigiang xs tk tuan 1
Đề tài: Giải pháp nâng cao hiệu quả sử dụng Internet của sinh viên
đề Thi trắc nghiệm kinh tế vĩ mô (có đáp án)
Hành vi mua của khách hàng
Bài thảo luận nhóm chương 4.5.6.7 Môn tư tưởng Hồ Chí Minh
PHƯƠNG PHÁP DỰ BÁO CHUỖI THỜI GIAN
Chiến dịch Tây Nguyên trong chiến thắng chống Mĩ cứu nước (TẢI FREE ZALO 093 ...
Truyền thông trong quản trị
Tiểu luận tư tưởng hồ chí minh về đạo đức cách mạng
VIẾT KẾ HOẠCH HÀNH ĐỘNG
 
Nhận thức rủi ro tác động đến ý định mua sắm trực tuyến của khách hàng38 201...
Trắc nghiệm môn nguyên lý kế toán (có đa)
Ad

Similar to Các toán tử trong c (20)

PPT
Session 04 Sua
PPT
Session 04 Sua
PPT
1 Gioi Thieu Chung
PDF
Chuong 02 bieu thuc
PPT
Lap trinh huong_doi_tuong_cpp_dhct_lesson02
PDF
Baigiang023 cac phep toan
PPT
Lesson02
PPT
Lesson02
PDF
07. OOP_UIT. Toán Tử Số Học - 2024 - 02 - 20.pdf
PDF
3a ly thuyet
PPT
Lesson02
PDF
Ex chapter 3
DOCX
Giotrnhcfulltingvit 131128201133-phpapp02
DOCX
Giáo trình c++ full tiếng việt
PDF
cpp chương 1 cấu trúc dữ liệu và giải thuật
PDF
300 BÀI CODE THIẾU NIÊN.pdf
PDF
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
PDF
LTNC_Chuong1-Kieu du lieu va cac cau truc.pdf
PPT
Nmlt C03 Cac Kieu Du Lieu Co So
PDF
lap trinh c Phan2 chuong5
Session 04 Sua
Session 04 Sua
1 Gioi Thieu Chung
Chuong 02 bieu thuc
Lap trinh huong_doi_tuong_cpp_dhct_lesson02
Baigiang023 cac phep toan
Lesson02
Lesson02
07. OOP_UIT. Toán Tử Số Học - 2024 - 02 - 20.pdf
3a ly thuyet
Lesson02
Ex chapter 3
Giotrnhcfulltingvit 131128201133-phpapp02
Giáo trình c++ full tiếng việt
cpp chương 1 cấu trúc dữ liệu và giải thuật
300 BÀI CODE THIẾU NIÊN.pdf
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
LTNC_Chuong1-Kieu du lieu va cac cau truc.pdf
Nmlt C03 Cac Kieu Du Lieu Co So
lap trinh c Phan2 chuong5
Ad

Recently uploaded (6)

PPTX
BC giao ban thang 10. V1 cho khach hang doanh nghiep.pptx
PDF
96366-Article Text-204540-1-10-20240524.pdf
PPTX
đồ án tốt nghiệp của nguyễn thành đạt 20216387
PPTX
1.5. vn_technical requirements for charging stations ver 2.0.pptx
PDF
KTATMT an toàn môi trường giáo trình.pdf
PDF
Kỹ thuật số (Digital Electronics) là lĩnh vực điện – điện tử làm việc với tín...
BC giao ban thang 10. V1 cho khach hang doanh nghiep.pptx
96366-Article Text-204540-1-10-20240524.pdf
đồ án tốt nghiệp của nguyễn thành đạt 20216387
1.5. vn_technical requirements for charging stations ver 2.0.pptx
KTATMT an toàn môi trường giáo trình.pdf
Kỹ thuật số (Digital Electronics) là lĩnh vực điện – điện tử làm việc với tín...

Các toán tử trong c

  • 1. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 1/17 Các toán tử Trong lập trình C, các toán tử có thể được phân ra thành các nhóm sau: Toán tử số học Toán tử so sánh Toán tử luận lý Toán tử bitwise Toán tử gán Các toán tử khác Toán tử số học Toán tử số học là những toán tử thực hiện các phép tính như cộng, trừ, nhân, chia trên các toán hạng. Các toán tử trong nhóm này được liệt kê trong bảng sau: Toán tử Mô tả Cú pháp + Cộng a + b hoặc  +a - Trừ a - b hoặc  -a * Nhân a * b / Chia a / b
  • 2. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 2/17 % Modulo - chia lấy phần dư a % b ++ Tăng 1 a++ hoặc  ++a -- Giảm 1 a-- hoặc  --a Với các toán tử  ++ và  --, vị trí của chúng (trước hoặc sau toán hạng) có ý nghĩa khác nhau: Đứng trước: với  ++a,  a sẽ tăng lên  1, rồi sau đó biểu thức mới được thực hiện. Đứng sau: với  a++, thì biểu thức sẽ được thực hiện với giá trị hiện tại của  a, sau đó  a mới được tăng lên  1. Cụ thể được cho trong bảng sau, với giá trị ban đầu của  a là  1: Vị trí Toán tử Ví dụ Biểu thức Kết quả a b Trước ++ b = ++a; 2 2 Sau ++ b = a++; 2 1 Trước -- b = --a; 0 0 Sau -- b = a--; 0 1 Ví dụ sau minh họa cách sử dụng các toán tử trong nhóm toán tử số học:
  • 3. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 3/17 #include <stdio.h> int main() { int a = 11; int b = 5; int c ; c = a + b; // c = 16 printf("a + b = %dn", c); c = a - b; // c = 6 printf("a - b = %dn", c); c = a * b; // c = 55 printf("a * b = %dn", c); c = a / b; // c = 2 printf("a / b = %dn", c); c = a % b; // c = 1 printf("a %% b = %dn", c); printf("++a = %dn", ++a); printf("--a = %dn", --a); return 0; } Sau khi biên dịch và chạy, kết quả sau sẽ được xuất ra:
  • 4. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 4/17 a + b = 16 a - b = 6 a * b = 55 a / b = 2 a % b = 1 ++a = 12 --a = 11 Toán tử so sánh Toán tử so sánh (hay toán tử quan hệ) là những toán tử dùng để kiểm tra mối quan hệ giữa hai toán hạng. Bảng sau mô tả chi tiết các toán tử nằm trong nhóm này: Toán tử Mô tả Cú pháp Ví dụ a b Kết quả == Bằng a == b 5 5 1 != Không bằng a != b 5 4 1 > Lớn hơn a > b 5 4 1 < Nhỏ hơn a < b 4 5 1 >= Lớn hơn hoặc bằng a >= b 5 5 1 <= Nhỏ hơn hoặc bằng a <= b 5 5 1 Ví dụ sau minh họa cách sử dụng các toán tử trong nhóm toán tử so sánh:
  • 5. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 5/17 #include <stdio.h> int main() { int a = 5; int b = 5; int c = 4; int d = 6; printf("%d == %d = %d n", a, b, a == b); // true printf("%d == %d = %d n", a, c, a == c); // false printf("%d == %d = %d n", a, d, a == d); // false printf("%d != %d = %d n", a, b, a != b); // false printf("%d != %d = %d n", a, c, a != c); // true printf("%d != %d = %d n", a, d, a != d); // true printf("%d > %d = %d n", a, b, a > b); // false printf("%d > %d = %d n", a, c, a > c); // true printf("%d > %d = %d n", a, d, a > d); // false printf("%d < %d = %d n", a, b, a < b); // false printf("%d < %d = %d n", a, c, a < c); // false printf("%d < %d = %d n", a, d, a < d); // true printf("%d >= %d = %d n", a, b, a >= b); // true printf("%d >= %d = %d n", a, c, a >= c); // true printf("%d >= %d = %d n", a, d, a >= d); // false 
  • 6. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 6/17 printf("%d <= %d = %d n", a, b, a <= b); // true printf("%d <= %d = %d n", a, c, a <= c); // false printf("%d <= %d = %d n", a, d, a <= d); // true return 0; } Sau khi biên dịch và chạy, sẽ nhận được kết quả sau đây: 5 == 5 = 1 5 == 4 = 0 5 == 6 = 0 5 != 5 = 0 5 != 4 = 1 5 != 6 = 1 5 > 5 = 0 5 > 4 = 1 5 > 6 = 0 5 < 5 = 0 5 < 4 = 0 5 < 6 = 1 5 >= 5 = 1 5 >= 4 = 1 5 >= 6 = 0 5 <= 5 = 1 5 <= 4 = 0 5 <= 6 = 1 Toán tử luận lý 
  • 7. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 7/17 Các toán tử luận lý được sử dụng trong C được liệt kê cụ thể ở bảng sau: Toán tử Mô tả Cú pháp Ví dụ a b Kết quả && Luận lý AND.  true khi và chỉ khi các toán hạng đều là  true a && b 0 0 0 1 0 0 1 1 1 || Luận lý OR.  true khi một trong hai toán hạng là  true a && b 0 0 0 1 0 1 1 1 1 ! Luận lý NOT.  true khi toán hạng là  false !a 1 0 0 1 Ví dụ sau minh họa cách sử dụng các toán tử trong nhóm toán tử luận lý: 
  • 8. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 8/17 #include <stdio.h> int main() { int a = 5; int b = 5; int c = 6; printf("(a > b) && (b > c) = %d n", (a > b) && (b > c)); printf("(a == b) && (a > c) = %d n", (a == b) && (a > c)); printf("(a == b) && (b < c) = %d n", (a == b) && (b < c)); printf("(a > b) || (b > c) = %d n", (a > b) || (b > c)); printf("(a == b) || (a > c) = %d n", (a == b) || (a > c)); printf("(a == b) || (b < c) = %d n", (a == b) || (b < c)); printf("!(a == b) = %d n", !(a == b)); printf("!(b == c) = %d n", !(b == c)); printf("!a = %d n", !a); return 0; } Sau khi biên dịch và chạy, sẽ được kết quả như sau: 
  • 9. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 9/17 (a > b) && (b > c) = 0 (a == b) && (a > c) = 0 (a == b) && (b < c) = 1 (a > b) || (b > c) = 0 (a == b) || (a > c) = 1 (a == b) || (b < c) = 1 !(a == b) = 0 !(b == c) = 1 !a = 0 Toán tử bitwise Các toán tử bitwise làm việc trên bit. Bảng dưới đây mô tả chi tiết các toán tử bitwise trong C: Toán tử Mô tả Cú pháp Ví dụ a b Kết quả ~ Bitwise NOT ~a 0b10100011 0b01011100 & Bitwise AND a & b 0b10100011 0b10101101 0b10100001 | Bitwise OR a | b 0b10100011 0b10101101 0b10101111 ^ Bitwise XOR a ^ b 0b10100011 0b10101101 0b00001110 << Dịch trái a << b 0b10100011 2 0b10001100 
  • 10. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 10/17 >> Dịch phải a >> b 0b10100011 2 0b10100000 Ví dụ sau đây sẽ minh họa cách sử dụng các toán tử trong nhóm toán tử bitwise: #include <stdio.h> int main() { unsigned char a = 19; /* 19 = 0b0001 0011 */ unsigned char b = 85; /* 85 = 0b0101 0101 */ char c; /* ----------- */ c = ~a; /*-20 = 0b1110 1100 */ printf("~a = %dn", c ); c = a & b; /* 17 = 0b0001 0001 */ printf("a & b = %dn", c ); c = a | b; /* 87 = 0b0101 0111 */ printf("a | b = %dn", c ); c = a ^ b; /* 70 = 0b0100 0110 */ printf("a ^ b = %dn", c ); c = a << 2; /* 76 = 0b0100 1100 */ printf("a << 2 = %dn", c ); c = a >> 2; /* 4 = 0b0000 0100 */ printf("a << 2 = %dn", c ); return 0; } 
  • 11. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 11/17 Sau khi biên dịch và chạy, sẽ được kết quả như sau: ~a = -20 a & b = 17 a | b = 87 a ^ b = 70 a << 2 = 76 a << 2 = 4 Toán tử gán Toán tử gán là những toán tử được dùng để gán giá trị cho biến. Bảng sau liệt kê các toán tử gán được sử dụng trong C: Toán tử Mô tả Cú pháp Tương đương với = Gán [giá trị của] toán hạng bên phải cho toán hạng bên trái. a = b a = b += Gán tổng toán hạng bên trái và toán hạng bên phải cho toán hạng bên trái. a += b a = a + b -= Gán hiệu toán hạng bên trái và toán hạng bên phải cho toán hạng bên trái. a -= b a = a - b *= Gán tích toán hạng bên trái và toán hạng bên phải cho toán hạng bên trái. a *= b a = a * b /= Gán thương toán hạng bên trái và toán hạng bên phải cho toán hạng bên trái. a /= b a = a / b 
  • 12. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 12/17 %= Phần dư của phép chia toán hạng bên trái cho toán hạng bên phải và gán cho toán hạng bên trái. a %= b a = a % b &= Gán kết quả của phép AND bit toán hạng bên trái và toán hạng bên phải cho toán hạng bên trái. a &= b a = a & b |= Gán kết quả của phép OR bit toán hạng bên trái và toán hạng bên phải cho toán hạng bên trái. a |= b a = a | b ^= Gán kết quả của phép XOR bit toán hạng bên trái và toán hạng bên phải cho toán hạng bên trái. a ^= b a = a ^ b <<= Gán kết quả của phép dịch bit trái toán hạng bên trái số toán hạng bên phải lần cho toán hạng bên trái. a <<= b a = a << b >>= Gán kết quả của phép dịch bit phải toán hạng bên trái số toán hạng bên phải lần cho toán hạng bên trái. a >>= b a = a >> b Ví dụ sau sẽ minh họa cách sử dụng các toán tử trong nhóm toán tử gán: 
  • 13. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 13/17 #include <stdio.h> int main() { int a = 5; int b; b = a; /* b = 5 */ printf("b = a; b = %dn", b ); b += a; /* b = 10 */ printf("b += a = %dn", b ); b -= a; /* b = 5 */ printf("b -= a; b = %dn", b ); b *= a; /* b = 25 */ printf("b *= a; b = %dn", b ); b /= a; /* b = 5 */ printf("b /= a; b = %dn", b ); b %= a; /* b = 0 */ printf("b %%= a; b = %dn", b ); b = 7; /* 0000 0111 */ b <<= 2; /* b = 28 (0001 1100) */ printf("b <<= 2; b = %dn", b ); b >>= 2; /* b = 7 (0000 0111) */ printf("b >>= 2; b = %dn", b ); b &= 3; /* b = 3 (0000 0011) */ printf("b &= 3; b = %dn", b ); b ^= 2; /* b = 1 (0000 0001) */ printf("b ^= 2; b = %dn", b ); b |= 4; /* b = 5 (0000 0101) */ 
  • 14. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 14/17 printf("b |= 2; b = %dn", b ); return 0; } Sau khi biên dịch và chạy, sẽ được kết quả như sau: b = a; b = 5 b += a = 10 b -= a; b = 5 b *= a; b = 25 b /= a; b = 5 b %= a; b = 0 b <<= 2; b = 28 b >>= 2; b = 7 b &= 3; b = 3 b ^= 2; b = 1 b |= 2; b = 5 Các toán tử khác Trong C, ngoài các toán tử đã được đưa ra ở trên, còn một số toán tử quan trọng khác cũng thường hay được sử dụng: Toán tử phẩy (comma operator) Toán tử phẩy được sử dụng để liên kết các biểu thức có liên quan với nhau, thường được sử dụng nhiều trong khai báo biến, ví dụ: 
  • 15. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 15/17 int a, b, c; Toán tử sizeof Toán tử này đã được đề cập ở phần trước (/lap-trinh-c-kieu-du-lieu/#toan- tu-sizeof), được dùng để trả về kích cỡ của dữ liệu (kiểu dữ liệu, biến, hằng ...). Toán tử ternary (?:) ?: là một toán tử điều kiện, được sử dụng với cú pháp sau: conditional_expression ? expression_if_true : expression_if_false trong đó: conditional_expression là một biểu thức điều kiện expression_if_true là biểu thức sẽ được đánh giá (evaluated) nếu biểu thức điều kiện đúng. expression_if_false là biểu thức sẽ được đánh giá nếu biều thức điều kiện sai. Ví dụ sau minh họa cách sử dụng toán tử  ?:: 
  • 16. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 16/17 Bài trước (/lap-trinh-c/cac-ham-nhap-xuat/) #include <stdio.h> int main() { char week_day; char opening_time; printf("Enter a day of the week [1-7]: "); scanf("%d", &week_day); /* If the day is Sunday (1) or Saturday (7), the opening time /* Else, the opening time will be 8:00 a.m. */ opening_time = (week_day == 1 || week_day == 7) ? 13 : 8; printf("Opening time: %dhn", opening_time); return 0; } Sau khi biên dịch và chạy, sẽ nhận được kết quả sau: Enter a day of the week [1-7]: 1 Opening time: 13h Ngoài ra còn một số toán tử khác như  *,  &,  .,  ->,  [] sẽ được trình bày ở các bài sau. Danh sách bài học (/lap-trinh-c/)   
  • 17. 4/14/2017 Các toán tử trong C https://www.laptrinh101.com/lap-trinh-c/cac-toan-tu/ 17/17 Bài sau  (/lap-trinh-c/dieu-kien-re-nhanh/) Cập nhật lần cuối vào 10-04-2017 11:25.  