Tải bản đầy đủ (.pdf) (4 trang)

NGÔN NGỮ LẬP TRÌNH C/C++: BIỂU THỨC ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (240.12 KB, 4 trang )

“Ngôn ng lp trình C và C++”
Nguyn Trng Giang


1
Chng 4: Biu thc

S kt hp các phép toán và các toán hng đ din đt mt công thc toán hc to ra biu
thc.

4.1. Khai báo bin
Cú pháp Gii thích
T x;
T: kiu d liu
x: bin

4.2. Phép gán (=)
Cú pháp Gii thích
bt1 = bt2;
bt1: Biu thc đc gán giá tr
bt2: Biu thc đem gán
− Ví d:
i = i+2;
x = x*(a+2);
x = y = 2;
c = (x=2)*(y=5);
− Có th kt hp phép gán vi phép toán khác (+ - * / % << >> & | ^).
Ví d: i += 2; x *= a+2;

4.3. Phép toán hai toán hng
a) Phép toán s hc: ( + - * / % )


− /: phép chia. Chú ý: phép chia 2 s nguyên s b phn thp phân. (VD: 5/3 = 1)
− %: phép ly phn d (Ví d: 11%3 = 2)

b) Phép toán Logic: ( && || )
− Kt qu ca phép toán là giá tr logic (0 hoc 1 – tng quát là khác 0)
− &&: Nhân logic
− ||: Cng logic

“Ngôn ng lp trình C và C++”
Nguyn Trng Giang


2
− Bng chân lý:
a b a && b a || b
khác 0 khác 0 khác 0 khác 0
khác 0 0 0 khác 0
0 khác 0 0 khác 0
0 0 0 0

c) Phép so sánh: ( > < >= <= == != )
− Kt qu ca các phép so sánh là giá tr logic (0 hoc 1)
− Có 2 ký hiu khác vi Pascal:
== (so sánh xem hai biu thc có bng nhau hay không)
!= (so sánh xem hai biu thc có khác nhau hay không)
− Chú ý: S nhm ln gia phép gán (=) và phép so sánh (==) có th dn ti nhng li
rt khó phát hin trong chng trình!

d) Thao tác bit: ( << >> & | ^ )
− << và >>

o Dch trái n bit: <<n
o Dch phi m bit: >>m
o Ví d: a=0x08 î a<<3=0x40 còn a>>3=0x01)
o Quy tc: a<<n = a*2
n
và a>>n = a*2
-n

− & Nhân logic (phép AND theo tng bit) Ví d: a=0x08; b=0x1A; a&b=0x08
− | Cng logic (phép OR theo tng bit) Ví d: a=0x08; b=0x1A; a|b=0x1A
− ^ Tuyn loi tr (phép XOR theo tng bit) Ví d: a=0x08; b=0x1A;
a^b=0x12
− Bng chân lý:
a b a & b a | b a ^ b
11
1 1 0
10
0 1 1
01
0 1 1
00
0 0 0
“Ngôn ng lp trình C và C++”
Nguyn Trng Giang


3
− ng dng: to mt n bit (bit mask). Ví d:  theo dõi bit s 3 ca bin flag, dùng
mt n mask = 0x08. Sau đó tính (flag & mask)


e) Toán t điu kin: ?:
Cú pháp Gii thích
(dk)?bt1:bt2
dk: biu thc điu kin
bt1: là biu thc đc tr v nu dk là ÚNG
bt2: là biu thc đc tr v nu dk là SAI

f) Toán t phm vi: ( :: )
− Dùng đ truy xut mt phn t b che bi phm vi hin thi hoc phân bit các thành
phn trùng tên nhau ca các lp c s khác nhau.

4.4. Phép toán mt toán hng
− Du âm -
− Phép tng ++: ++x (tng trc, ly giá tr sau) x++ (ly giá tr trc, tng sau)
− Phép gim : x (gim trc, ly giá tr sau) x (ly giá tr trc, gim sau)
− Ph đnh ! Ví d: a khác 0 î !a = 0 còn nu a = 0 î !a = 1
− Phn bù theo bit ~ Ví d: a=0x08 î ~a=0xF7
− Chuyn kiu:
o Cú pháp: (T)bt Trong đó: T – kiu d liu, bt: biu thc
o C++ cho phép: T(bt)
o Chú ý: Bn thân kiu ca biu thc không thay đi.


Ly đa ch &



Ly ni dung *

− sizeof: Xác đnh đ ln (theo byte) ca mt kiu d liu hoc mt bin

sizeof(T) vi T là kiu d liu
Ví d: sizeof(int)

sizeof(x) vi x là bin
Ví d: int i;
sizeof(i)



“Ngôn ng lp trình C và C++”
Nguyn Trng Giang


4
4.5. Mc đ u tiên ca các phép toán

Mc u tiên Phép toán
Th t thc hin
1
:: (trong C++)

2
() [] -> .
Trái sang phi
3
! ~ ++ - (T) * & sizeof
Phi sang trái
4
* / %
Trái sang phi

5
+ -
Trái sang phi
6
<< >>
Trái sang phi
7
< <= > >=
Trái sang phi
8
== !=
Trái sang phi
9
&
Trái sang phi
10
|
Trái sang phi
11
^
Trái sang phi
12
&&
Trái sang phi
13
||
Trái sang phi
14
?:
Phi sang trái

15
= += -= *= /= %= >>= <<= &= |= ^=
Phi sang trái
16
,


×