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
x: bi n
4.2 Phép gán (=)
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
Trang 2− B ng chân lý:
a b a && b a || b
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*2n 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
Trang 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)
Trang 44.5 M c đ u tiên c a các phép toán
1 :: (trong C++)
15 = += -= *= /= %= >>= <<= &= |= ^= Ph i sang trái