SlideShare a Scribd company logo
1 of 17
Download to read offline
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

What's hot

đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cảnđồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cảnhttps://www.facebook.com/garmentspace
 
Đề cương môn xử lý ảnh
Đề cương môn xử lý ảnhĐề cương môn xử lý ảnh
Đề cương môn xử lý ảnhJean Valjean
 
Tieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracerTieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracerDuc Nguyen
 
Bài tập kiến trúc máy tính
Bài tập kiến trúc máy tínhBài tập kiến trúc máy tính
Bài tập kiến trúc máy tínhHa Nguyen
 
Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019
Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019
Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019TiLiu5
 
THIẾT KẾ BỘ ĐIỀU KHIỂN CHO BỘ NGHỊCH LƯU BA PHA TRÊN HỆ TỌA ĐỘ TĨNH.pptx
THIẾT KẾ BỘ ĐIỀU KHIỂN CHO BỘ NGHỊCH LƯU BA PHA TRÊN HỆ TỌA ĐỘ TĨNH.pptxTHIẾT KẾ BỘ ĐIỀU KHIỂN CHO BỘ NGHỊCH LƯU BA PHA TRÊN HỆ TỌA ĐỘ TĨNH.pptx
THIẾT KẾ BỘ ĐIỀU KHIỂN CHO BỘ NGHỊCH LƯU BA PHA TRÊN HỆ TỌA ĐỘ TĨNH.pptxMan_Ebook
 
Hướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracerHướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracerBình Tân Phú
 
Bao cao nhap mon dien tu vien thong
Bao cao nhap mon dien tu vien thongBao cao nhap mon dien tu vien thong
Bao cao nhap mon dien tu vien thongshockwavetn94
 
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơnKĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơnNguyen Thieu
 
Quan ly bo nho ngoai trong linux
Quan ly bo nho ngoai trong linuxQuan ly bo nho ngoai trong linux
Quan ly bo nho ngoai trong linuxThu Lam
 
Kỹ thuật điện tử - bài tập diode
Kỹ thuật điện tử - bài tập diodeKỹ thuật điện tử - bài tập diode
Kỹ thuật điện tử - bài tập diodecanhbao
 
Tính toán khoa học - Chương 4: Giải phương trình phi tuyến
Tính toán khoa học - Chương 4: Giải phương trình phi tuyếnTính toán khoa học - Chương 4: Giải phương trình phi tuyến
Tính toán khoa học - Chương 4: Giải phương trình phi tuyếnChien Dang
 

What's hot (20)

Đề tài: Phân đoạn ảnh dựa trên phương pháp phát hiện biên, HAY
Đề tài: Phân đoạn ảnh dựa trên phương pháp phát hiện biên, HAYĐề tài: Phân đoạn ảnh dựa trên phương pháp phát hiện biên, HAY
Đề tài: Phân đoạn ảnh dựa trên phương pháp phát hiện biên, HAY
 
Đồng dư thức
Đồng dư thứcĐồng dư thức
Đồng dư thức
 
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cảnđồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
 
Chuong 05 flip flop
Chuong 05 flip flopChuong 05 flip flop
Chuong 05 flip flop
 
Đề cương môn xử lý ảnh
Đề cương môn xử lý ảnhĐề cương môn xử lý ảnh
Đề cương môn xử lý ảnh
 
Baitapmaygiat
BaitapmaygiatBaitapmaygiat
Baitapmaygiat
 
Tieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracerTieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracer
 
Bài tập kiến trúc máy tính
Bài tập kiến trúc máy tínhBài tập kiến trúc máy tính
Bài tập kiến trúc máy tính
 
Đề tài: Mô phỏng kênh truyền vô tuyến số bằng matlab, 9đ
Đề tài: Mô phỏng kênh truyền vô tuyến số bằng matlab, 9đ Đề tài: Mô phỏng kênh truyền vô tuyến số bằng matlab, 9đ
Đề tài: Mô phỏng kênh truyền vô tuyến số bằng matlab, 9đ
 
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
Đề tài: Robot dò line điều khiển qua điện thoại, HAY, 9đ
Đề tài: Robot dò line điều khiển qua điện thoại, HAY, 9đĐề tài: Robot dò line điều khiển qua điện thoại, HAY, 9đ
Đề tài: Robot dò line điều khiển qua điện thoại, HAY, 9đ
 
Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019
Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019
Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019
 
THIẾT KẾ BỘ ĐIỀU KHIỂN CHO BỘ NGHỊCH LƯU BA PHA TRÊN HỆ TỌA ĐỘ TĨNH.pptx
THIẾT KẾ BỘ ĐIỀU KHIỂN CHO BỘ NGHỊCH LƯU BA PHA TRÊN HỆ TỌA ĐỘ TĨNH.pptxTHIẾT KẾ BỘ ĐIỀU KHIỂN CHO BỘ NGHỊCH LƯU BA PHA TRÊN HỆ TỌA ĐỘ TĨNH.pptx
THIẾT KẾ BỘ ĐIỀU KHIỂN CHO BỘ NGHỊCH LƯU BA PHA TRÊN HỆ TỌA ĐỘ TĨNH.pptx
 
Hướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracerHướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracer
 
Bao cao nhap mon dien tu vien thong
Bao cao nhap mon dien tu vien thongBao cao nhap mon dien tu vien thong
Bao cao nhap mon dien tu vien thong
 
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơnKĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
 
Quan ly bo nho ngoai trong linux
Quan ly bo nho ngoai trong linuxQuan ly bo nho ngoai trong linux
Quan ly bo nho ngoai trong linux
 
Kỹ thuật điện tử - bài tập diode
Kỹ thuật điện tử - bài tập diodeKỹ thuật điện tử - bài tập diode
Kỹ thuật điện tử - bài tập diode
 
Tính toán khoa học - Chương 4: Giải phương trình phi tuyến
Tính toán khoa học - Chương 4: Giải phương trình phi tuyếnTính toán khoa học - Chương 4: Giải phương trình phi tuyến
Tính toán khoa học - Chương 4: Giải phương trình phi tuyến
 
Ktmt chuong 5
Ktmt chuong 5Ktmt chuong 5
Ktmt chuong 5
 

Similar to Các toán tử trong c

Bài tập xác suất thống kê
Bài tập xác suất thống kê Bài tập xác suất thống kê
Bài tập xác suất thống kê Trinh Tu
 
Giotrnhcfulltingvit 131128201133-phpapp02
Giotrnhcfulltingvit 131128201133-phpapp02Giotrnhcfulltingvit 131128201133-phpapp02
Giotrnhcfulltingvit 131128201133-phpapp02Huy Nguyễn
 
Bài tập ôn lập trình
Bài tập ôn lập trìnhBài tập ôn lập trình
Bài tập ôn lập trìnhThai Hoc Vu
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiTrung Thanh Nguyen
 
1 de cuong c
1 de cuong c1 de cuong c
1 de cuong cPhú Syd
 
He thong bai trac nghiem chuong 3
He thong bai trac nghiem chuong 3He thong bai trac nghiem chuong 3
He thong bai trac nghiem chuong 3lethilien1993
 
Thuc hanh mat lab tong hop
Thuc hanh mat lab tong hopThuc hanh mat lab tong hop
Thuc hanh mat lab tong hopHùng Vương
 
1 Gioi Thieu Chung
1 Gioi Thieu Chung1 Gioi Thieu Chung
1 Gioi Thieu ChungCuong
 
Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Minh Ngoc Tran
 
Kinh te-luong-doc-hieu-ket-qua-hoi-quy
Kinh te-luong-doc-hieu-ket-qua-hoi-quyKinh te-luong-doc-hieu-ket-qua-hoi-quy
Kinh te-luong-doc-hieu-ket-qua-hoi-quySon Le Van
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson02
Lap trinh huong_doi_tuong_cpp_dhct_lesson02Lap trinh huong_doi_tuong_cpp_dhct_lesson02
Lap trinh huong_doi_tuong_cpp_dhct_lesson02xcode_esvn
 
Giáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việtGiáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việtMôi Trường Việt
 

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

Bài tập xác suất thống kê
Bài tập xác suất thống kê Bài tập xác suất thống kê
Bài tập xác suất thống kê
 
Tn ktlt
Tn ktltTn ktlt
Tn ktlt
 
Ktlt lab full
Ktlt lab fullKtlt lab full
Ktlt lab full
 
Giotrnhcfulltingvit 131128201133-phpapp02
Giotrnhcfulltingvit 131128201133-phpapp02Giotrnhcfulltingvit 131128201133-phpapp02
Giotrnhcfulltingvit 131128201133-phpapp02
 
Bài tập ôn lập trình
Bài tập ôn lập trìnhBài tập ôn lập trình
Bài tập ôn lập trình
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 
Chuyen doi he so
Chuyen doi he soChuyen doi he so
Chuyen doi he so
 
1 de cuong c
1 de cuong c1 de cuong c
1 de cuong c
 
Nhung bai mau lap trinh c
Nhung bai mau lap trinh cNhung bai mau lap trinh c
Nhung bai mau lap trinh c
 
He thong bai trac nghiem chuong 3
He thong bai trac nghiem chuong 3He thong bai trac nghiem chuong 3
He thong bai trac nghiem chuong 3
 
Lab03 function
Lab03 functionLab03 function
Lab03 function
 
Thuc hanh mat lab tong hop
Thuc hanh mat lab tong hopThuc hanh mat lab tong hop
Thuc hanh mat lab tong hop
 
1 Gioi Thieu Chung
1 Gioi Thieu Chung1 Gioi Thieu Chung
1 Gioi Thieu Chung
 
Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1
 
Bai tap oop c++
Bai tap oop c++Bai tap oop c++
Bai tap oop c++
 
693 toiuuma c
693 toiuuma c693 toiuuma c
693 toiuuma c
 
693 toiuuma c
693 toiuuma c693 toiuuma c
693 toiuuma c
 
Kinh te-luong-doc-hieu-ket-qua-hoi-quy
Kinh te-luong-doc-hieu-ket-qua-hoi-quyKinh te-luong-doc-hieu-ket-qua-hoi-quy
Kinh te-luong-doc-hieu-ket-qua-hoi-quy
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson02
Lap trinh huong_doi_tuong_cpp_dhct_lesson02Lap trinh huong_doi_tuong_cpp_dhct_lesson02
Lap trinh huong_doi_tuong_cpp_dhct_lesson02
 
Giáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việtGiáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việt
 

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.  