1. Trường Đại học Sư phạm
Khoa Tin
học
Bài giảng 2.3
Các phép toán
2. Nội dung
• Các toán tử số học
• Các biểu thức số học
• Trộn các kiểu dữ liệu
• Tràn kiểu
• Các toán tử tích hợp:
+=,
-‐=,
…
2014 Nguyễn
Thanh
Tuấn 2
4. Các biểu thức số học
(1+2*a)/3
+
(4*(b+c)*(5-‐d-‐e))/f
-‐ 6*(7/g+h)
2014 Nguyễn
Thanh
Tuấn 4
5. Trộn các kiểu dữ liệu
• Nếu hai toán hạng của một toán tử số học
cùng kiểu thì kết quả cùng kiểu.
• Vd:
• int/int →
int;
double/double
→
double
• Nếu hai toán hạng khác kiểu thì kết quả là kiểu
lớn nhất.
• Vd:
• int/double
→
double/double
→
double.
• 1/2
→
0,
1.0/2.0
→
0.5,
1.0/2
→
0.5,
1/2.0
→
0.5
2014 Nguyễn
Thanh
Tuấn 5
6. Tràn kiểu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* Kiểm tra tràn kiểu (TestOverflow.c) */
#include <stdio.h>
int main() {
// Giới hạn của int là [-‐2147483648, 2147483647]
int i1 = 2147483647; // max int
printf("%dn", i1 + 1); // -‐2147483648 (tràn)
printf("%dn", i1 + 2); // -‐2147483647
printf("%dn", i1 * i1); // 1
int i2 = -‐2147483648; // min int
printf("%dn", i2 -‐ 1); // 2147483647 (tràn)
printf("%dn", i2 -‐ 2); // 2147483646
printf("%dn", i2 * i2); // 0
return 0;
}
2014 Nguyễn
Thanh
Tuấn 6
7. Các toán tử tích hợp:
+=,
-‐=,
…
Toán tử Sử
dụng Mô
tả Ví dụ
= var = expr Gán
giá
trị
vế
trái
cho
vế
phải x
=
5;
+= var += expr như
var = var + expr x
+=
5;
như
x
=
x
+
5
-‐= var -‐= expr như
var = var -‐ expr x
-‐=
5;
như
x
=
x
-‐ 5
*= var *= expr như
var = var * expr x
*=
5;
như
x
=
x
*
5
/= var /= expr như
var = var / expr x
/=
5;
như x
=
x
/
5
%= var %= expr như
var = var % expr x
%=
5;
nhưx
=
x
%
5
2014 Nguyễn
Thanh
Tuấn 7
8. Toán tử tăng/giảm
Toán
tử Ví
dụ Mô tả
++ x++;
++x Tăng
lên
1,
như
x
+=
1
-‐-‐ x-‐-‐;
-‐-‐x Giảm đi 1,
như x
-‐=
1
2014 Nguyễn
Thanh
Tuấn 8
9. Toán tử tăng/giảm
2014 Nguyễn
Thanh
Tuấn 9
Toán
tử Mô tả Ví
dụ Kết quả
++var
Tăng trước giá trị
của var thêm 1,
sau đó dùnggiá trị
mới của var
y
=
++x; như
x=x+1;
y=x;
var++
Tăng
sau
giá
trị
của var
thêm
1,
sau
đó
dùng
giá
trị
cũ
của
var
y
=
x++; như oldX=x;
x=x+1;
y=oldX;
-‐-‐var Giảm
trước y
=
-‐-‐x; như
x=x-‐1;
y=x;
var-‐-‐ Giảm
sau y
=
x-‐-‐; như oldX=x;
x=x-‐1;
y=oldX;
10. Toán tử quan hệ và logic
Toán
tử Mô
tả Ví
dụ Kết
quả
== Bằng expr1== expr2 (x
==
y)
→
false
!= Khác expr1!= expr2 (x
!=
y)
→
true
> Lớn hơn expr1> expr2 (x
>
y)
→
false
>= Lớn hơn hoặc bằng expr1>= expr2 (x
>=
5)
→
true
< Bé
hơn expr1< expr2 (y
<
8)
→
false
<= Bé
hơn
hoặc
bằng expr1>= expr2 (y
<=
8)
→
true
2014 Nguyễn
Thanh
Tuấn 10
11. Toán tử quan hệ và logic
2014 Nguyễn
Thanh
Tuấn 11
Toán tử Mô
tả Sử
dụng
&& AND expr1 && expr2
|| OR expr1 || expr2
! NOT !expr
^ XOR expr1 ^ expr2