Professional Documents
Culture Documents
KTLT C21 CacKyThuatThaoTacTrenBIT - PPT (By Bsquochoai - Ga)
KTLT C21 CacKyThuatThaoTacTrenBIT - PPT (By Bsquochoai - Ga)
KTLT C21 CacKyThuatThaoTacTrenBIT - PPT (By Bsquochoai - Ga)
K THUT LP TRNH
ThS. ng Bnh Phng
dbphuong@fit.hcmus.edu.vn
CC K THUT
THAO TC TRN BIT
1
&
VC
BB
Ni dung
1 Cc ton t logic
3 Cc ng dng
4 Bi tp
1 0
2 bit 22
2 1 0
3 bit 23
n-1 5 4 3 2 1 0
n bit 2n
0000 1111 = 2n 1
Cc k thut thao tc trn bit
4
&
VC
BB
Biu din thng tin trong MTT
c im
c lu trong cc thanh ghi hoc trong cc
nh. Thanh ghi hoc nh c kch thc 1
byte (8 bit) hoc 1 word (16 bit).
Biu din s nguyn khng du, s nguyn c
du, s thc v k t.
Hai loi bit c bit
msb (most significant bit): bit nng nht (bit n)
lsb (least significant bit): bit nh nht (bit 0)
c im
Biu din cc i lng lun dng.
V d: chiu cao, cn nng, m ASCII
Tt c bit c s dng biu din gi tr.
S nguyn khng du 1 byte ln nht l
1111 11112 = 28 1 = 25510.
S nguyn khng du 1 word ln nht l
1111 1111 1111 11112 = 216 1 = 6553510.
Ty nhu cu c th s dng s 2, 3 word.
lsb = 1 th s l s l s l.
Cc k thut thao tc trn bit
6
&
VC
BB
Biu din s nguyn c du
c im
Lu cc s dng hoc m.
Bit msb dng biu din du
msb = 0 biu din s dng. VD: 0101 0011
msb = 1 biu din s m. VD: 1101 0011
Trong my tnh, s m c biu din dng
s b 2.
S 5 (byte) 0 0 0 0 0 1 0 1
S b 1 ca 5 1 1 1 1 1 0 1 0
+ 1
S b 2 ca 5 1 1 1 1 1 0 1 1
+ S 5 0 0 0 0 0 1 0 1
Kt qu 1 0 0 0 0 0 0 0 0
Nhn xt
S b 2 ca x cng vi x l mt dy ton bit 0
(khng tnh bit 1 cao nht do vt qu phm
vi lu tr). Do s b 2 ca x chnh l gi
tr m ca x hay x.
i s thp phn m 5 sang nh phn?
i 5 sang nh phn ri ly s b 2 ca n.
Thc hin php ton a b?
a b = a + (b) => Cng vi s b 2 ca b.
Tnh gi tr khng du v c du ca 1 s?
V d s word (16 bit): 1100 1100 1111 0000
S nguyn khng du ?
Tt c 16 bit lu gi tr.
=> gi tr l 52464.
S nguyn c du ?
Bit msb = 1 do s ny l s m.
=> ln l gi tr ca s b 2.
S b 2 = 0011 0011 0001 0000 = 13072.
=> gi tr l 13072.
Cc k thut thao tc trn bit
10
&
VC
BB
Tnh gi tr c du v khng du
02 2 2 0002 2 2
7E 126 126 7FFE 32766 32766
7F 127 127 7FFF 32767 32767
80 128 128 8000 32768 32768
81 129 127 8001 32769 32767
msb = 1
FE 254 2 FFFE 65534 2
FF 255 1 FFFF 65535 1
Cc k thut thao tc trn bit
11
&
VC
BB
Tnh gi tr c du v khng du
Nhn xt
msb=0 gi tr c du bng gi tr khng du.
msb=1 th gi tr c du bng gi tr khng
du tr 28=256 (byte) hay 216=65536 (word).
Tnh gi tr khng du v c du ca 1 s?
V d s word (16 bit): 1100 1100 1111 0000
Gi tr khng du l 52464.
Gi tr c du: v bit msb = 1 nn gi tr c du
bng 52464 65536 = 13072.
0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0
&
0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0
544 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0
Cc k thut thao tc trn bit
13
&
VC
BB
Cc ton t trn bit
Ton t | (or)
| 0 1
0 0 1
1 1 1
V d
int x = 2912, y = 1706, z = x | y;
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0
|
0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0
4074 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0
Cc k thut thao tc trn bit
14
&
VC
BB
Cc ton t trn bit
Ton t ^ (xor)
^ 0 1
0 0 1
1 1 0
V d
int x = 2912, y = 1706, z = x ^ y;
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0
^
0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0
3530 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 0
Cc k thut thao tc trn bit
15
&
VC
BB
Cc ton t trn bit
Ton t ~ (not)
~ 0 1
1 0
V d
int x = 2912, z = ~x;
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
~ 0 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0
-2913 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1
5824 0
11648 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0
728 0
1456 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0
msb 0
Cc k thut thao tc trn bit
18
&
VC
BB
Cc ton t trn bit
Lu
Khng c nhm ln cc cc ton t trn bit
(&, |, ~) vi cc ton t kt hp (&&, || , !)
Cc ton t gp: &= |= ^= <<= >>=
My tnh lm vic trn bit nn cc thao tc
trn h nh phn s nhanh hn rt nhiu so
vi h khc.
Phi lun nh di ca dy bit ang lm
vic (8bit, 16bit, 32bit, 64bit, )
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
| 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
& 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
& 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n9
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c im ton t <<
n = (nj2j) vi j [0, k] (k l ch s bit msb)
Dch tri i bit s m mi k s tng thm i
n << i = (nj2j+i) = 2i(nj2j) = 2in
Vy, dch tri i bit nhn vi 2i
c im ton t >>
n = (nj2j) vi j [0, k] (k l ch s bit msb)
Dch phi i bit s m mi k s gim i i
n << i = (nj2ji) = 2i(nj2j) = 2in = n/2i
Vy, dch phi i bit chia cho 2i
??? 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 0
a b c
0 0 0 0 { }
1 0 0 1 { c }
2 0 1 0 { b }
3 0 1 1 { b c }
4 1 0 0 { a }
5 1 0 1 { a c }
6 1 1 0 { a b }
7 1 1 1 { a b c }
Cc k thut thao tc trn bit
29