Professional Documents
Culture Documents
Biu thc
Chng ny gii thiu cc ton t xy dng sn cho vic son tho cc biu
thc. Mt biu thc l bt k s tnh ton no m cho ra mt gi tr.
Khi tho lun v cc biu thc, chng ta thng s dng thut ng c
lng. V d, chng ta ni rng mt biu thc c lng mt gi tr no .
Thng th gi tr sau cng ch l l do cho vic c lng biu thc. Tuy
nhin, trong mt vi trng hp, biu thc cng c th cho cc kt qu ph.
Cc kt qu ny l s thay i lu di trong trng thi ca chng trnh.
Trong trng hp ny, cc biu thc C++ th khc vi cc biu thc ton hc.
C++ cung cp cc ton t cho vic son tho cc biu thc ton hc,
quan h, lun l, trn bit, v iu kin. N cng cung cp cc ton t cho ra
cc kt qu ph hu dng nh l gn, tng, v gim. Chng ta s xem xt ln
lt tng loi ton t. Chng ta cng s tho lun v cc lut u tin m nh
hng n th t c lng ca cc ton t trong mt biu thc c nhiu
ton t.
+
*
/
%
Tn
Cng
Tr
Nhn
Chia
Ly phn d
V d
12 + 4.9
3.98 - 4
2 * 3.4
9 / 2.0
13 % 3
// cho 16.9
// cho -0.02
// cho 6.8
// cho 4.5
// cho 1
17
cost = 100;
volume = 80;
unitPrice = cost / (double) volume;
// c 1.25
k = 10 * 92;
Cc ton t quan h.
Ton t
==
!=
<
<=
>
>=
Tn
So snh bng
So snh khng bng
So snh h hn
So snh h hn hoc bng
So snh ln hn
So snh ln hn hoc bng
V d
5 == 5
// cho 1
5 != 5
// cho 0
5 < 5.5 // cho 1
5 <= 5
// cho 1
5 > 5.5 // cho 0
6.3 >= 5 // cho 1
18
Cc ton t lun l.
Ton t
!
&&
||
Tn
Ph nh lun l
V lun l
Hoc lun l
V d
!(5 == 5)
5 < 6 && 6 < 6
5 < 6 || 6 < 5
// c 0
// c 0
// c 1
19
!20
10 && 5
10 || 5.5
10 && 0
// c 0
// c 1
// c 1
// c 0
sorted = 0;
balanced = 1;
// false
// true
~
&
|
^
<<
>>
Tn
Ph nh bit
V bit
Hoc bit
Hoc exclusive bit
Dch tri bit
Dch phi bit
V d
~'\011'
'\011' & '\027'
'\011' | '\027'
'\011' ^ '\027'
'\011' << 2
'\011' >> 2
// c '\366'
// c '\001'
// c '\037'
// c '\036'
// c '\044'
// c '\002'
20
Bng 2.5
Gi tr c s 8
x
y
~x
x&y
x|y
x^y
x << 2
x >> 2
011
027
366
001
037
036
044
002
Chui bit
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
k = 5;
++
++
---
Tn
Tng mt (tin t)
Tng mt (hu t)
Gim mt (tin t)
Gim mt (hu t)
V d
++k + 10
k++ + 10
--k + 10
k-- + 10
// c 16
// c 15
// c 14
// c 15
21
=
+=
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
V d
Tng ng vi
n = 25
n += 25
n -= 25
n *= 25
n /= 25
n %= 25
n &= 0xF2F2
n |= 0xF2F2
n ^= 0xF2F2
n <<= 4
n >>= 4
n = n + 25
n = n 25
n = n * 25
n = n / 25
n = n % 25
n = n & 0xF2F2
n = n | 0xF2F2
n = n ^ 0xF2F2
n = n << 4
n = n >> 4
// ngha l: m = m + (n = p = 10);
22
int m = 1, n = 2;
int min = (m < n ? m : n);
// min nhn gi tr 1
23
u tin ca cc ton t.
::
()
+
->*
*
+
<<
<
==
&
Ton t
[]
++
-.*
/
>>
<=
!=
->
!
~
.
*
&
%
>
>=
new
delete
sizeof
()
Loi
n hng
Nh hng
Th t
C hai
Tri ti phi
n hng
Phi ti tri
Nh hng
Nh hng
Nh hng
Nh hng
Nh hng
Nh hng
Nh hng
Tri ti phi
Tri ti phi
Tri ti phi
Tri ti phi
Tri ti phi
Tri ti phi
Tri ti phi
24
^
|
&&
||
?:
=
Thp nht
+=
-=
*=
/=
^=
%=
&=
|=
<<=
>>=
Nh hng
Nh hng
Nh hng
Nh hng
Tam hng
Tri ti phi
Tri ti phi
Tri ti phi
Tri ti phi
Tri ti phi
Nh hng
Phi ti tri
Nh hng
Tri ti phi
// nh l: (int) 3.14
25
Trong mt vi trng hp, C++ cng thc hin chuyn kiu khng
tng minh. iu ny xy ra khi cc gi tr ca cc kiu khc nhau c trn
ln trong mt biu thc. V d:
double
int
i = i + d;
d = 1;
i = 10.5;
// d nhn 1.0
// i nhn 10
// ngha l: i = int(double(i) + d)
Bi tp cui chng 2
2.1
2.2
2.3
2.4
d = 2 * int(3.14);
k = 3.14 - 3;
c = 'a' + 2;
c = 'p' + 'A' - 'a';
26
2.5
27