Chuong2_Bieudiendulieu&Sohocmaytinh.pdf
-
Upload
hoang-thanh-nguyen -
Category
Documents
-
view
224 -
download
5
Transcript of Chuong2_Bieudiendulieu&Sohocmaytinh.pdf
-
1
Cu trc my tnh
Chng 2
BIU DIN D LIU
& S HC MY TNH
-
2
Ni dung chng 2
2.1. C|c h m c bn
2.2. M~ ha v{ lu tr d liu trong m|y tnh
2.3. Biu din s nguyn
2.4. C|c php to|n s hc vi s nguyn
2.5. Biu din s thc
2.6. Biu din k t
-
3
Cc h m c bn
V mt to|n hc, ta c th biu din s theo h m c s bt k.
Khi nghin cu v m|y tnh, ta ch quan t}m n c|c h m sau }y: H thp ph}n (Decimal System) con ngi s dng
H nh ph}n (Binary System) m|y tnh s dng
H mi s|u (Hexadecimal System) dng vit gn cho s nh ph}n
-
4
H thp phn
n
mi
i
i
m
m
n
n
n
n
aA
aaaaaaA
10
10...101010...1010 110
0
1
1
1
1
S dng 10 ch s: 0,1,2,3,4,5,6,7,8,9 biu din s
Dng n ch s thp ph}n c th biu din c 10n gi| tr nguyn khc nhau:
00...000 = 0
....
99...999 = 10n-1
Gi s mt s A c biu din di dng: A = an an-1 a1 a0 . a-1 a-2 a-m
Gi| tr ca A c hiu nh sau:
-
5
V d
S thp ph}n 472.38 c gi| tr c hiu nh sau: 472.38 = 4 x 102 + 7 x 101 + 2 x 100 + 3 x 10-1 + 8 x 10-2
-
6
M rng cho h c s r (r>1)
S dng r ch s c gi| tr ring t 0 n r-1 biu din s
Gi s c s A c biu din bng c|c ch s ca h m theo c s r nh sau: A = an an-1 a1 a0 . a-1 a-2 a-m
Gi| tr ca A l{:
Mt chui n ch s ca h m c s r s biu din c rn gi tr nguyn khc nhau.
n
mi
i
i
m
m
n
n
n
n
raA
rararararararaA ...... 221
1
0
0
1
1
1
1
-
7
H nh phn
S dng 2 ch s: 0,1
Ch s nh ph}n gi l{ bit (binary digit)
Bit l{ n v thng tin nh nht
Dng n bit c th biu din c 2n gi| tr kh|c nhau: 00...000 = 0
...
11...111 = 2n-1
Gi s c s A c biu din theo h nh ph}n nh sau: A = an an-1 a1 a0 . a-1 a-2 a-m
Vi ai l{ c|c ch s nh ph}n, khi gi| tr ca A l{:
n
mi
i
i
m
m
n
n
n
n
aA
aaaaaaaA
2
2...2222...22 221
1
0
0
1
1
1
1
-
8
V d
S nh ph}n 1101001.1011 c gi| tr c x|c nh nh sau: 1101001.1011(2) = 2
6 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4
= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625 = 105.6875(10)
-
9
i s thp phn sang nh phn
Thc hin chuyn i phn nguyn v{ phn l ring.
Chuyn i phn nguyn: Cch 1: chia dn s cho 2, x|c nh c|c phn d, ri vit c|c s d
theo chiu ngc li.
V d: chuyn i 105(10) sang h nh ph}n ta l{m nh sau:
105 : 2 = 52 d 1
52 : 2 = 26 d 0
26 : 2 = 13 d 0
13 : 2 = 6 d 1
6 : 2 = 3 d 0
3 : 2 = 1 d 1
1 : 2 = 0 d 1
Nh vy, ta c: 105(10) = 1101001(2)
-
10
i s thp phn sang nh phn
Chuyn i phn nguyn (tip): Cch 2: ph}n tch s th{nh tng c|c ly tha ca 2, sau da v{o
c|c s m x|c nh dng biu din nh ph}n.
V d: 105 = 64 + 32 + 8 + 1 = 26 + 25 + 23 + 20
105(10) = 1101001(2)
Chuyn i phn l: Nh}n phn l vi 2 ri ly phn nguyn ... Sau vit c|c phn nguyn
theo chiu thun.
V d: chuyn i s 0.6875(10) sang h nh ph}n:
0.6875 x 2 = 1.3750 phn nguyn = 1
0.375 x 2 = 0.750 phn nguyn = 0
0.75 x 2 = 1.50 phn nguyn = 1
0.5 x 2 = 1.0 phn nguyn = 1
Kt qu l{: 0.6875(10) = 0.1011(2)
-
11
3. H mi su (Hexa)
S dng 16 ch s, k hiu nh sau:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Dng vit gn cho s nh phn.
-
12
Mt s v d
Nh ph}n Hexa: 11 1011 1110 0110.01101(2) = 3BE6.68(16) Hexa Nh ph}n: 3E8(16) = 11 1110 1000(2) Thp ph}n Hexa: 14988 ?
14988 : 16 = 936 d 12 tc l{ C
936 : 16 = 58 d 8
58 : 16 = 3 d 10 tc l{ A
3 : 16 = 0 d 3
Nh vy, ta c: 14988(10) = 3A8C(16)
Hexa Thp ph}n: 3A8C ? 3A8C (16) = 3 x 16
3 + 10 x 162 + 8 x 161 +12 x 160
= 12288 + 2560 + 128 + 12 = 14988(10)
-
Chuyn i nhanh
105 = 6x16 + 9 = 69(16)= 110 1001
35 = 2x16 + 3 = 23(16) = 10 0011
13
-
14
Cng tr s Hexa
8A9B
37CD
C268
+B46E
1AC9
99A5
-B7E5
2AF9+
FA9D
2BC5-
B800
0FFF+
8E9A
3FE2-
1234
ABCD+
4B6D
3FEA-
CFFF
1FFF+
A78D
45FB-
879D
5DF8+
98BA
8A9D-
E2DE CED8
-
15
Ni dung chng 2
2.1. C|c h m c bn
2.2. M~ ha v{ lu tr d liu trong m|y tnh
2.3. Biu din s nguyn
2.4. C|c php to|n s hc vi s nguyn
2.5. Biu din s thc
2.6. Biu din k t
-
16
M ha v lu tr d liu
1. Nguyn tc chung v m~ ha d liu
2. Lu tr thng tin trong b nh chnh
-
17
1. Nguyn tc chung v m ha d liu
Mi d liu a v{o m|y tnh u phi c m~ ha th{nh s nh ph}n.
C|c loi d liu : D liu nh}n to: do con ngi quy c
D liu t nhin: tn ti kh|ch quan vi con ngi
-
18
Nguyn tc m ha d liu
M~ ha d liu nh}n to: D liu s nguyn: m~ ha theo chun qui c
D liu s thc: m~ ha bng s du chm ng
D liu k t: m~ ha theo b m~ k t
-
19
Nguyn tc m ha d liu (tip)
M~ ha d liu t nhin: Ph bin l{ c|c tn hiu vt l nh }m thanh, hnh nh, ...
C|c d liu t nhin cn phi c s ha (digitalized) trc khi a vo trong my tnh.
S m~ ha v{ t|i to tn hiu vt l:
-
20
di t d liu
d{i t d liu: L{ s bit c s dng m~ ha loi d liu tng ng
Trong thc t, d{i t d liu thng l{ bi s ca 8 bit, v d: 8, 16, 32, 64 bit
1GB = 210 MB = 220 KB = 230 Byte
4GB = 232 Byte
-
21
2. Lu tr thng tin trong b nh chnh
B nh chnh thng c t chc theo Byte
d{i t d liu c th chim 1 hoc nhiu Byte
Cn phi bit th t lu tr c|c byte trong b nh chnh: Lu tr kiu u nh (Little-endian)
Lu tr kiu u to (Big-endian)
Little-endian: Byte c ngha thp hn c lu tr trong b nh v tr c a ch nh hn.
Big-endian: Byte c ngha thp hn c lu tr trong b nh v tr c a ch ln hn.
-
22
V d
Intel 80x86, Pentium: Little-endian
Motorola 680x0, c|c b x l RISC: Big-endian
Power PC, Itanium: h tr c hai (Bi-endian)
-
23
Bi tp
D liu 16 bit c gi| tr l{ 5B9D c lu tr v{o b nh chnh t chc theo kiu Little-endian bt u t byte nh c a ch l{ 1234. H~y x|c nh ni dung c|c byte nh cha lu tr d liu di dng nh ph}n.
-
24
Ni dung chng 2
2.1. C|c h m c bn
2.2. M~ ha v{ lu tr d liu trong m|y tnh
2.3. Biu din s nguyn
2.4. C|c php to|n s hc vi s nguyn
2.5. Biu din s thc
2.6. Biu din k t
-
25
Biu din s nguyn
1. S nguyn khng du
2. S nguyn c du
3. Biu din s nguyn theo m~ BCD
-
26
1. S nguyn khng du
Dng tng qu|t: gi s dng n bit biu din cho mt s nguyn khng du A:
an-1an-2...a3a2a1a0 Gi| tr ca A c tnh nh sau:
Di biu din ca A: t 0 n 2n-1
1
0
0
0
1
1
2
2
1
1
2
22...22
n
i
i
i
n
n
n
n
aA
aaaaA
-
27
Cc v d
V d 1. Biu din c|c s nguyn khng du sau }y bng 8 bit:
A = 45 B = 156
Gii:
A = 45 = 32 + 8 + 4 + 1 = 25 + 23 + 22 + 20
A = 0010 1101
B = 156 = 128 + 16 + 8 + 4 = 27 + 24 + 23 + 22
B = 1001 1100
-
28
Cc v d (tip)
V d 2. Cho c|c s nguyn khng du X, Y c biu din bng 8 bit nh sau:
X = 0010 1011
Y = 1001 0110
Gii:
X = 0010 1011 = 25 + 23 + 21 + 20
= 32 + 8 + 2 + 1 = 43
Y = 1001 0110 = 27 + 24 + 22 + 21
= 128 + 16 + 4 + 2 = 150
-
29
Trng hp c th: vi n = 8 bit
Di biu din l{ [0, 255]
0000 0000 = 0 0000 0001 = 1
0000 0010 = 2
0000 0011 = 3
.....
1111 1111 = 255
Trc s hc:
0 12
3
255254
Trc s hc my tnh:
0 1 2 255
-
30
Vi n = 8 bit
Kiu d liu tng ng trong Turbo C l{ kiu unsigned char.
V d: unsigned char a;
a = 255;
a = a + 1;
printf(%d,a); //Kt qu sai l{ 0
1111 1111
+ 0000 0001
1 0000 0000
KQ sai: 255 + 1 = 0 ?
(do php cng b nh ra ngoi)
-
31
Vi n = 16 bit, 32 bit, 64 bit
n = 16 bit: Di biu din l{ [0, 65535]
Kiu d liu tng ng trong Turbo C l{ kiu unsigned int
V d:
unsigned int a;
a = 0xffff;
a = a + 1;
printf(%d,a);
n = 32 bit: Di biu din l{ [0, 232-1]
n = 64 bit: Di biu din l{ [0, 264-1]
-
32
2. S nguyn c du
a. Khi nim v s b
S b chn v{ s b mi (h thp ph}n): Gi s c mt s nguyn thp ph}n A c biu din bi n ch s thp ph}n. Khi ta c: S b chn ca A = (10n - 1) - A
S b mi ca A = 10n - A
NX: S b mi = S b chn + 1
V d: Xt n = 4 ch s, A = 2874
S b chn ca A = (104 - 1) - 2874 = 7125
S b mi ca A = 104 - 2874 = 7126
-
33
Khi nim v s b
S b mt v{ s b hai (h nh ph}n): Gi s c mt s nguyn nh ph}n A c biu din bi n bit. Khi ta c: S b mt ca A = (2n - 1) - A
S b hai ca A = 2n - A
NX: S b hai = S b mt + 1
V d: Xt n = 4 bit, A = 0110
S b mt ca A = (24 - 1) - 0110 = 1001
S b hai ca A = 24 - 0110 = 1010
-
34
Nhn xt
C th tm s b mt ca A bng c|ch o tt c c|c bit ca A
S b hai ca A = S b mt ca A + 1
-
35
Nhn xt
V d:
cho A =0110 0101
S b mt ca A =1001 1010
+ 1
S b hai ca A =1001 1011
Nhn xt
A = 0110 0101
S b hai ca A += 1001 1011
1 0000 0000 = 0 (b qua bit nh ra ngo{i)
->S b hai ca A=-A
-
36
Biu din s nguyn c du
b. Biu din s nguyn c du bng s b hai
Dng n bit biu din s nguyn c du A:
an-1an-2...a2a1a0 Vi s dng:
Bit an-1 = 0
C|c bit cn li biu din ln ca s dng
Dng tng qu|t ca s dng: 0an-2...a2a1a0 Gi| tr ca s dng:
Di biu din ca s dng: [0, 2n-1-1]
2
0
2n
i
i
iaA
-
37
Biu din s nguyn c du (tip)
Vi s }m: c biu din bng s b hai ca s dng tng ng
Bit an-1 = 1
Dng tng qu|t ca s }m: 1an-2...a2a1a0 Gi| tr ca s }m:
Di biu din ca s }m: [-2n-1, -1]
Di biu din ca s nguyn c du n bit l{ [-2n-1, 2n-1-1]
2
0
1 22n
i
i
i
n aA
-
38
Biu din s nguyn c du (tip)
Dng tng qu|t ca s nguyn c du A:
an-1an-2...a2a1a0
Gi| tr ca A c x|c nh nh sau:
Di biu din: [-2n-1, 2n-1-1]
2
0
1
1 22n
i
i
i
n
n aaA
-
39
Cc v d
V d 1. Biu din c|c s nguyn c du sau }y bng 8 bit A = +50 B = -70 Gii: A = +50 = 32 + 16 + 2 = 25 + 24 + 21
A = 0011 0010
B = -70 Ta c: +70 = 64 + 4 + 2 = 26 + 22 + 21
+70 = 0100 0110 S b 1 = 1011 1001 + 1 S b 2 = 1011 1010 B = 1011 1010
-
40
Cc v d (tip)
V d 2. X|c nh gi| tr ca c|c s nguyn c du 8 bit sau }y:
A = 0101 0110
B = 1101 0010
Gii:
A = 26 + 24 + 22 + 21 = 64 + 16 + 4 + 2 = +86
B = -27 + 26 + 24 + 21 = -128 + 64 + 16 + 2 = -46
-
41
Trng hp c th: vi n = 8 bit
Di biu din l{ [-128, +127]
0000 0000 = 0 0000 0001 = +1
0000 0010 = +2
..
0111 1111 = +127
1000 0000 = -128
1000 0001 = -127
.....
1111 1110 = -2
1111 1111 = -1
Trc s hc:
Trc s hc my tnh:
0-2 -1 127-128 1 2
0 +1+2
+127
-1-2
-128
-
42
Vi n = 8 bit (tip)
Kiu d liu tng ng trong Turbo C l{ kiu char.
V d: char a;
a = 127;
a = a + 1;
printf(%d,a); //Kt qu sai l{ -128
0111 1111
+ 0000 0001
1000 0000
KQ sai: 127 + 1 = -128 ?
(do php cng b trn s hc)
-
43
Vi n = 16 bit, 32 bit, 64 bit
n = 16 bit: Di biu din l{ [-32768, +32767]
Kiu d liu tng ng trong Turbo C l{ kiu int
n = 32 bit: Di biu din l{ [-231, 231-1]
Kiu d liu tng ng trong Turbo C l{ kiu long int
n = 64 bit: Di biu din l{ [-263, 263-1]
-
44
Chuyn t 8 bit sang 16 bit
Vi s dng:
+35 = 0010 0011 (8 bit)
+35 = 0000 0000 0010 0011 (16 bit)
Thm 8 bit 0 vo bn tri
Vi s }m:
-79 = 1011 0001 (8 bit)
-79 = 1111 1111 1011 0001 (16 bit)
Thm 8 bit 1 vo bn tri
Kt lun: m rng sang bn tr|i 8 bit bng bit du
-
45
3. Biu din s nguyn theo m BCD
BCD Binary Coded Decimal (M~ ha s nguyn thp ph}n bng nh ph}n)
Dng 4 bit m~ ha cho c|c ch s thp ph}n t 0 n 9 0 0000 5 0101
1 0001 6 0110
2 0010 7 0111
3 0011 8 1000
4 0100 9 1001
C 6 t hp khng s dng: 1010, 1011, 1100, 1101, 1110, 1111
-
46
V d v s BCD
35 0011 0101BCD 79 0111 1001BCD 2281 0010 0010 1000 0001BCD 1304 0001 0011 0000 0100BCD
-
47
Php cng s BCD
35 0011 0101BCD + 24 + 0010 0100BCD 59 0101 1001BCD Kt qu ng (khng phi hiu chnh) 89 1000 1001BCD + 52 + 0101 0010BCD 141 1101 1011 kt qu sai + 0110 0110 hiu chnh 0001 0100 0001BCD kt qu ng 1 4 1 Hiu chnh: cng thm 6 nhng h{ng c nh
-
48
Cc kiu lu tr s BCD
BCD dng nn (Packed BCD): Hai s BCD c lu tr trong 1 Byte. V d s 52 c lu tr nh sau:
BCD dng khng nn (Unpacked BCD): Mi s BCD c lu tr trong 4 bit thp ca mi Byte. V d s 52 c lu tr nh sau:
0101 0010
0101 0010
-
49
Ni dung chng 2
2.1. C|c h m c bn
2.2. M~ ha v{ lu tr d liu trong m|y tnh
2.3. Biu din s nguyn
2.4. C|c php to|n s hc vi s nguyn
2.5. Biu din s thc
2.6. Biu din k t
-
50
Cc php ton s hc vi s nguyn
1. B cng
2. Cng s nguyn khng du
3. Cng/tr s nguyn c du
4. Nh}n s nguyn
5. Chia s nguyn
-
51
1. B cng
B cng 1 bit to{n phn (Full Adder)
-
52
B cng (tip)
B cng n bit
-
53
2. Cng s nguyn khng du
Nguyn tc: S dng b cng n bit cng 2 s nguyn khng du n bit, kt qu nhn c cng l{ n bit.
Nu khng c nh ra khi bit cao nht (Cout=0) th kt qu nhn c l{ ng.
Nu c nh ra khi bit cao nht (Cout=1) th kt qu nhn c l{ sai, khi ~ xy ra hin tng nh ra ngo{i.
Hin tng nh ra ngoi (Carry-out) xy ra khi tng ca 2 s nguyn khng du n bit > 2n-1
-
54
VD cng s nguyn khng du 8 bit
Trng hp khng xy ra carry-out: X = 1001 0110 = 150
Y = 0001 0011 = 19
S = 1010 1001 = 169
Cout = 0
Trng hp c xy ra carry-out: X = 1100 0101 = 197
Y = 0100 0110 = 70
S = 0000 1011 267
Cout = 1 carry-out
(KQ sai = 23 + 21 + 20 = 11)
unsigned char x, y, s;
x = 197;
y = 70;
s = x + y;
printf(%d,s);
-
55
3. Cng/tr s nguyn c du
Khi cng hai s nguyn c du n bit, ta khng quan t}m n bit Cout v{ kt qu nhn c cng l{ n bit. Cng hai s kh|c du: kt qu lun ng
Cng hai s cng du: Nu tng nhn c cng du vi 2 s hng th kt qu l{ ng
Nu tng nhn c kh|c du vi 2 s hng th ~ xy ra hin tng trn s hc (Overflow) v{ kt qu nhn c l{ sai
Tr{n s hc xy ra khi tng thc s ca hai s nm ngo{i di biu din ca s nguyn c du n bit: [-2n-1, 2n-1-1]
-
56
Php tr s nguyn c du
Nguyn tc thc hin php tr: Ta c: X Y = X + (-Y)
C|ch thc hin: ly X cng vi s b 2 ca Y
B cng n bit
Y X
S
B 2
n-bit n-bit
n-bit
-
57
V d cng 2 s nguyn c du (khng trn)
-
58
V d cng 2 s nguyn c du (Overflow)
-
59
4. Nhn s nguyn
a. Nh}n s nguyn khng du
b. Nh}n s nguyn c du
-
60
a. Nhn s nguyn khng du
C|c tch ring phn c x|c nh nh sau: Nu bit ca s nh}n = 0 tch ring phn = 0
Nu bit ca s nh}n = 1 tch ring phn = s b nh}n
Tch ring phn tip theo c dch tr|i 1 bit so vi tch ring phn trc
Tch = tng c|c tch ring phn
Nh}n 2 s nguyn n bit, tch c d{i 2n bit khng tr{n
-
61
B nhn s nguyn khng du
Mn-1 ... M1 M0
B cng n bit
An-1 ... A1 A0 Qn-1 ... Q1 Q0C
B iu khin dch v cng
iu khin cng
iu khin dch phi
S b nhn M
S nhn Q
-
62
Lu thc hin
Bt u
C, A 0
M S b nhnQ S nhnB m n
Q0 = 1 ? C, A A M
Dch phi C, A, QB m B m - 1
B m = 0 ? Kt thc
S
S
-
63
V d nhn s nguyn khng du
M = 1011 (11 - S b nhn) Q = 1101 (13 - S nhn) = 1000 1111 (143 - Tch)
C A Q 0 0000 1101 Cc gi tr khi u + 1011
0 1011 1101 A A + M 0 0101 1110 Dch phi
0 0010 1111 Dch phi + 1011
0 1101 1111 A A + M 0 0110 1111 Dch phi + 1011
1 0001 1111 A A + M 0 1000 1111 Dch phi
-
64
b. Nhn s nguyn c du
S dng thut gii nh}n khng du: Bc 1: Chuyn i s nh}n v{ s b nh}n th{nh s dng tng ng.
Bc 2: Nhn 2 s bng thut gii nh}n s nguyn khng du c tch 2 s dng.
Bc 3: Hiu chnh du ca tch: Nu 2 tha s ban u cng du th tch nhn c bc 2 l{ kt qu cn tnh.
Nu 2 tha s ban u kh|c du nhau th kt qu l{ s b 2 ca tch nhn c bc 2.
-
65
Nhn s nguyn c du
S dng thut gii Booth: Vi s nh}n dng:
Ta c: 2i + 2i-1 + + 2j = 2i+1 - 2j (vi ij)
VD: M * 01110010 = M * (27 24 + 22 21)
Quy tc: duyt t tr|i sang phi:
Nu gp 10 th tr A i M ri dch phi
Nu gp 01 th cng A vi M ri dch phi
Nu gp 00 hay 11 th ch dch phi
Vi s nh}n }m: Ta c: 1110ak-1ak-2a0 = -2
n-1 + 2n-2 + + 2k+1 + ak-12k-1 + + a02
0
= -2n-1 + 2n-1 - 2k+1 + ak-12k-1 + + a02
0
-2k+1 ng vi bit 10 nn vn m bo quy tc TH trn
-
66
Lu thc hin thut ton Booth
Bt u
A 0
Q-1 0
M S b nhnQ S nhnB m n
Q0Q-1
A A M
Dch phi A, Q, Q-1(Gi nguyn bit du ca A)
B m B m - 1
B m = 0 ? Kt thc
= 01
S
A A M
= 10
= 00 / 11
A Q Q-1
-
67
V d v thut ton Booth
V d 1:
n = 4 bit, M = +7, Q = +3
M = 0111, Q = 0011, -M = 1001
A Q Q-1
0000 0011 0 ; khi to
+1001
1001 0011 0 ; A A - M
1100 1001 1 ; dch phi
1110 0100 1 ; dch phi
+0111
10101 0100 1 ; A A + M
0010 1010 0 ; dch phi
0001 0101 0 ; dch phi
V d 2:
n = 4 bit, M = +7, Q = -3
M = 0111, Q = 1101, -M = 1001
A Q Q-1
0000 1101 0 ; khi to
+1001
1001 1101 0 ; A A - M
1100 1110 1 ; dch phi
+0111
10011 1110 1 ; A A + M
0001 1111 0 ; dch phi
+1001
1010 1111 0 ; A A - M
1101 0111 1 ; dch phi
1110 1011 1 ; dch phi
-
68
5. Chia s nguyn
a. Chia s nguyn khng du
b. Chia s nguyn c du
-
69
a. Chia s nguyn khng du
V d:
-
70
B chia s nguyn khng du
Mn-1 ... M1 M0
B cng/tr n bit
An-1 ... A1 A0 Qn-1 ... Q1 Q0
B logic iu khincng, tr v dch
iu khin cng/tr
iu khin dch tri
S chia M
S b chia Q
-
71
Lu thc hin
Bt u
A 0
M S chiaQ S b chia
B m 0
A < 0 ?
Q0 0
A A M
Dch tri A, Q
B m = 0 ? Kt thc
S
A A M
Q0 1
B m B m - 1
S
-
72
b. Chia s nguyn c du
Bc 1: Chuyn i s chia v{ s b chia th{nh s dng tng ng
Bc 2: S dng thut gii chia s nguyn khng du chia 2 s dng, kt qu nhn c l{ thng Q v{ phn d R u dng
Bc 3: Hiu chnh du kt qu theo quy tc sau:
-
73
Ni dung chng 2
2.1. C|c h m c bn
2.2. M~ ha v{ lu tr d liu trong m|y tnh
2.3. Biu din s nguyn
2.4. C|c php to|n s hc vi s nguyn
2.5. Biu din s thc
2.6. Biu din k t
-
74
Biu din s thc
1. Kh|i nim v s du chm tnh
2. Kh|i nim v s du chm ng
3. Chun IEEE 754/85
-
75
Biu din s thc
Quy c: "du chm" (point) c hiu l{ k hiu ngn c|ch gia phn nguyn v{ phn l ca 1 s thc.
C 2 c|ch biu din s thc trong m|y tnh: So dau cham tinh (fixed-point number):
Du chm l{ c nh (s bit d{nh cho phn nguyn v{ phn l l{ c nh)
Dung trong cac bo vi x ly hay vi ieu khien th h cu.
So dau cham o ng (floating-point number): Du chm khng c nh
Dung trong cac bo vi x ly hie n nay, co o chinh xac cao hn.
-
76
1. Khi nim v s du chm tnh
S bit d{nh cho phn nguyn v{ s bit phn l l{ c nh.
Gi s rng: U(a,b) la ta p cac so dau cham tinh khng du co a bit trc dau cham va b bit sau dau cham.
A(a,b) la ta p cac so dau cham tinh c du co a bit (khng ke bit dau) trc dau cham va b bit sau dau cham.
-
77
S du chm tnh khng du
Khong x|c nh ca s du chm tnh khng du: [0, 2a - 2-b]
V d: Dng 8 bit m~ ha cho kiu s du chm tnh, trong c 2 bit d{nh cho phn l. Khong x|c nh ca kiu d liu ny l: 0 R 26 2-2 = 63.75
VD: gi| tr ca 101011.11 = 10101111 x 2-2 = 43.75
-
78
S du chm tnh c du
Khong x|c nh ca s du chm tnh c du: [-2a, 2a - 2-b]
V d: Dung 8 bit e bieu dien so cham tinh co dau vi a=5, b=2
Ta c ta p cac so chm tinh thuo c A(5,2) nam trong khoang: [-25, 25 2-2] hay [-32, 31.75]
-
79
c im ca s du chm tnh
C|c php to|n thc hin nhanh.
chnh x|c khi thc hin c|c php to|n khng cao, a c bie t la vi phep tinh nhn.
V d: Khi thc hin php nh}n ta cn phi c thm mt s lng bit nht nh biu din kt qu.
oi vi so khng dau: U(a1, b1) x U(a2, b2) = U(a1 + a2, b1 + b2)
oi vi so co dau: A(a1, b1) x A(a2, b2) = A(a1 + a2 + 1, b1 + b2)
-
80
2. Khi nim v s du chm ng
Floating Point Number biu din cho s thc
Mt s thc X c biu din theo kiu s du chm ng nh sau:
X = M * RE
Trong : M l{ phn nh tr (Mantissa)
R l{ c s (Radix)
E l{ phn m (Exponent)
Vi R c nh th lu tr X ta ch cn lu tr M v{ E (di dng s nguyn)
-
81
3. Chun IEEE 754/85
L{ chun m~ ha s du chm ng
C s R = 2
C c|c dng c bn:
Dng c chnh x|c n, 32-bit
Dng c chnh x|c kp, 64-bit
Dng c chnh x|c kp m rng, 80-bit
Khun dng m~ ha:
S me
79 63 078 64
S me
31 22 030 23
S me
63 51 062 52
-
82
Khun dng m ha
S l{ bit du, S=0 l{ s dng, S=1 l{ s }m.
e l{ m~ lch (excess) ca phn m E, tc l{: E = e b
Trong b l{ lch (bias): Dng 32-bit : b = 127, hay E = e - 127
Dng 64-bit : b = 1023, hay E = e - 1023
Dng 80-bit : b = 16383, hay E = e - 16383
m l{ c|c bit phn l ca phn nh tr M, phn nh tr c ngm nh nh sau: M = 1.m
Cng thc x|c nh gi| tr ca s thc tng ng l{:
X = (-1)S x 1.m x 2e-b
-
83
V d v s du chm ng
V d 1: C mt s thc X c dng biu din nh ph}n theo chun IEEE 754 dng 32 bit nh sau:
1100 0001 0101 0110 0000 0000 0000 0000
X|c nh gi| tr thp ph}n ca s thc .
Gii: S = 1 X l{ s }m
e = 1000 0010 = 130
m = 10101100...00
Vy X = (-1)1 x 1.10101100...00 x 2130-127
= -1.101011 x 23 = -1101.011 = -13.375
-
84
V d v s du chm ng (tip)
V d 2: X|c nh gi| tr thp ph}n ca s thc X c dng biu din theo chun IEEE 754 dng 32 bit nh sau:
0011 1111 1000 0000 0000 0000 0000 0000
Gii:
-
85
V d v s du chm ng (tip)
V d 3: Biu din s thc X = 9.6875 v dng s du chm ng theo chun IEEE 754 dng 32 bit
Gii:
X = 9.6875(10) = 1001.1011(2) = 1.0011011 x 23
Ta c:
S = 0 v }y l{ s dng
E = e 127 nn e = 127 + 3 = 130(10) = 1000 0010(2) m = 001101100...00 (23 bit)
Vy:
X = 0100 0001 0001 1011 0000 0000 0000 0000
-
86
Cc quy c c bit
Nu tt c c|c bit ca e u bng 0, c|c bit ca m u bng 0, th X = 0
Nu tt c c|c bit ca e u bng 1, c|c bit ca m u bng 0, th X =
Nu tt c c|c bit ca e u bng 1, m c t nht mt bit bng 1, th X khng phi l{ s (not a number - NaN)
-
87
Trc s biu din
Dng 32 bit: a = 2-127 10-38 b = 2+127 10+38
Dng 64 bit: a = 2-1023 10-308 b = 2+1023 10+308
Dng 80 bit: a = 2-16383 10-4932 b = 2+16383 10+4932
-0 +0-a b-b a
underflowoverflow overflow
-
88
Thc hin cc php ton
X1 = M1 * RE1
X2 = M2 * RE2
Ta c X1 X2 = (M1 * R
E1-E2 M2) * RE2 , vi E2 E1
X1 * X2 = (M1 * M2) * RE1+E2
X1 / X2 = (M1 / M2) * RE1-E2
-
89
Cc kh nng trn s
Tr{n trn s m (Exponent Overflow): m dng vt ra khi gi| tr cc i ca s m dng c th.
Tr{n di s m (Exponent Underflow): m }m vt ra khi gi| tr cc i ca s m }m c th.
Tr{n trn phn nh tr (Mantissa Overflow): cng hai phn nh tr c cng du, kt qu b nh ra ngo{i bit cao nht.
Tr{n di phn nh tr (Mantissa Underflow): Khi hiu chnh phn nh tr, c|c s b mt bn phi phn nh tr.
-
90
Php cng v php tr
Kim tra c|c s hng c bng 0 hay khng Nu c th g|n kt qu da trn s cn li.
Hiu chnh phn nh tr Sao cho 2 s c phn m ging nhau: tng s m nh v{ dch phi phn
nh tr tng ng (dch phi hn ch sai s nu c).
VD: 1.01 * 23 + 1.11 = 1.01 * 23 + 0.00111 * 23
Cng hoc tr phn nh tr Nu tr{n th dch phi v{ tng s m, nu b tr{n s m th b|o li tr{n
s.
Chun ha kt qu Dch tr|i phn nh tr bit tr|i nht (bit MSB) kh|c 0.
Tng ng vi vic gim s m nn c th dn n hin tng tr{n di s m.
-
91
Ni dung chng 2
2.1. C|c h m c bn
2.2. M~ ha v{ lu tr d liu trong m|y tnh
2.3. Biu din s nguyn
2.4. C|c php to|n s hc vi s nguyn
2.5. Biu din s thc
2.6. Biu din k t
-
92
Biu din k t trong my tnh
1. B m~ ASCII (American Standard Code for Information Interchange)
2. B m~ Unicode
-
93
1. B m ASCII
Do ANSI (American National Standard Institute) thit k
L{ b m~ 8 bit m~ ha c cho 28 = 256 k t, c m~ t 0016 FF16, bao gm: 128 k t chun c m~ t 0016 7F16 128 k t m rng c m~ t 8016 FF16
-
94
HEXA 0 1 2 3 4 5 6 7
0
0
16
32
0
48
@
64
P
80
`
96
p
112
1
1
17
!
33
1
49
A
65
Q
81
a
97
q
113
2
2
18
"
34
2
50
B
66
R
82
b
98
r
114
3
3
19
#
35
3
51
C
67
S
83
c
99
s
115
4
4
20
$
36
4
52
D
68
T
84
d
100
t
116
5
5
21
%
37
5
53
E
69
U
85
e
101
u
117
6
6
22
&
38
6
54
F
70
V
86
f
102
v
118
7
7
23
'
39
7
55
G
71
W
87
g
103
w
119
8
8
24
(
40
8
56
H
72
X
88
h
104
x
120
9
9
25
)
41
9
57
I
73
Y
89
i
105
y
121
A
10
26
*
42
:
58
J
74
Z
90
j
106
z
122
B
11
27
+
43
;
59
K
75
[
91
k
107
{
123
C
12
28
,
44
<
60
L
76
\
92
l
108
|
124
D
13
29
-
45
=
61
M
77
]
93
m
109
}
125
E
14
30
.
46
>
62
N
78
^
94
n
110
~
126
F
15
31
/
47
?
63
O
79
-
95
o
111
127
-
95
a. Cc k t chun
95 k t hin th c: c m~ t 2016 7E16 26 ch c|i hoa Latin 'A' 'Z' c m~ t 4116 5A16 26 ch c|i thng Latin 'a' 'z' c m~ t 6116 7A16 10 ch s thp ph}n '0' '9' c m~ t 3016 3916 C|c du c}u: . , ? ! : ;
C|c du php to|n: + - * /
Mt s k t thng dng: #, $, &, @, ...
Du c|ch (m~ l{ 2016)
33 m~ iu khin: m~ t 0016 1F16 v 7F16 dng m~ ha cho c|c chc nng iu khin
-
96
iu khin nh dng
BS Backspace - Li li mt v tr: K t iu khin con tr li li mt v tr.
HT Horizontal Tab - Tab ngang: K t iu khin con tr dch tip mt khong nh trc.
LF Line Feed - Xung mt dng: K t iu khin con tr chuyn xung dng di.
VT Vertical Tab - Tab ng: K t iu khin con tr chuyn qua mt s dng nh trc.
FF Form Feed - y sang u trang: K t iu khin con tr di chuyn xung u trang tip theo.
CR Carriage Return - V u dng: K t iu khin con tr di chuyn v u dng hin hnh.
-
97
iu khin truyn s liu
SOH Start of Heading - Bt u tiu : K t nh du bt u phn thng tin tiu .
STX Start of Text - Bt u vn bn: K t nh du bt u khi d liu vn bn v cng chnh l kt thc phn thng tin tiu .
ETX End of Text - Kt thc vn bn: K t nh du kt thc khi d liu vn bn c bt u bng STX.
EOT End of Transmission - Kt thc truyn: Ch ra cho bn thu bit kt thc truyn.
ENQ Enquiry - Hi: Tn hiu yu cu p ng t mt my xa.
ACK Acknowledge - Bo nhn: K t c pht ra t pha thu bo cho pha pht bit rng d liu c nhn thnh cng.
NAK Negative Aknowledge - Bo ph nhn: K t c pht ra t pha thu bo cho pha pht bit rng vic nhn d liu khng thnh cng.
SYN Synchronous / Idle - ng b ha: c s dng bi h thng truyn ng b ng b ho qu trnh truyn d liu.
ETB End of Transmission Block - Kt thc khi truyn: Ch ra kt thc khi d liu c truyn.
-
98
iu khin phn cch thng tin
FS File Separator - K hiu phn cch tp tin: nh du ranh gii gia cc tp tin.
GS Group Separator - K hiu phn cch nhm: nh du ranh gii gia cc nhm tin (tp hp cc bn ghi).
RS Record Separator - K hiu phn cch bn ghi: nh du ranh gii gia cc bn ghi.
US Unit Separator - K hiu phn cch n v: nh du ranh gii gia cc phn ca bn ghi.
-
99
Cc k t iu khin khc
NUL Null - K t rng: c s dng in khong trng khi khng c d liu.
BEL Bell - Chung: c s dng pht ra ting bp khi cn gi s ch ca con ngi.
SO Shift Out - Dch ra: Ch ra rng cc m tip theo s nm ngoi tp k t chun cho n khi gp k t SI.
SI Shift In - Dch vo: Ch ra rng cc m tip theo s nm trong tp k t chun.
DLE Data Link Escape - Thot lin kt d liu: K t s thay i ngha ca mt hoc nhiu k t lin tip sau .
DC1
DC4
Device Control - iu khin thit b : Cc k t dng iu khin cc thit b ph tr.
CAN Cancel - Hy b: Ch ra rng mt s k t nm trc n cn phi b qua.
EM End of Medium - Kt thc phng tin: Ch ra k t ngay trc n l k t cui cng c tc dng vi phng tin vt l.
SUB Substitute - Thay th: c thay th cho k t no c xc nh l b li.
ESC Escape - Thot: K t c dng cung cp cc m m rng bng cch kt hp vi k t sau .
DEL Delete - Xa: Dng xa cc k t khng mong mun.
-
100
b. Cc k t m rng
c nh ngha bi: Nh{ ch to m|y tnh
Ngi ph|t trin phn mm
V d: B m~ k t m rng ca IBM: c dng trn m|y tnh
IBM-PC.
B m~ k t m rng ca Apple: c dng trn m|y tnh Macintosh.
C|c nh{ ph|t trin phn mm ting Vit cng ~ thay i phn n{y m~ ho| cho c|c k t ring ca ch Vit, v d nh b m~ TCVN 5712.
-
101
2. B m Unicode
Do c|c h~ng m|y tnh h{ng u thit k
L{ b m~ 16-bit
c thit ke cho a ngn ng, trong c ting Vit
-
102
Bi tp 1
Gi s c c|c bin nh di }y cha c|c s nguyn c du 8-bit vi ni dung biu din theo h 16 nh sau:
P = 3A Q = 7C R = DE S = FF
H~y x|c nh gi| tr ca c|c bin nh di dng s thp ph}n.
-
103
Bi tp 2
Gi s c X thuc kiu s nguyn c du 16-bit, n c g|n gi| tr di dng thp ph}n bng -1234. H~y cho bit ni dung ca c|c byte nh cha bin di dng Hexa, bit rng b nh lu tr theo kiu u nh (little-endian).
-
104
Bi tp 3
Gi s c bin P cha s nguyn c du 16 bit. Ni dung ca bin P c cho trong b nh nh sau:
H~y x|c nh gi| tr ca bin P di dng thp ph}n.
9D(16)
80(16)
a ch tng dn
(Little-endian)
-
105
Bi tp 4
Gi s c mt bin s thc X c biu din bng s du chm ng theo chun IEEE 754 dng 32 bit, n chim 4 byte trong b nh vi ni dung c ch ra hnh v sau.
Bit rng b nh t chc theo kiu u nh (little-endian), hy x|c nh gi| tr thp ph}n ca s thc .
00(16)
80(16) a ch tng dnD9(16)
C3(16)
-
106
Bi tp 5
Gi s c bin X thuc kiu s du chm ng theo chun IEEE 754 dng 32 bit. N c g|n gi| tr di dng thp ph}n bng -124.125 v{ lu tr v{o b nh bt u t byte nh c a ch l{ 200. H~y cho bit ni dung ca c|c byte nh cha bin di dng Hexa, bit rng b nh lu tr theo kiu u nh (little-endian).