Chng 1. H thng sm và khái nim v mã Trang 1 Chng 1 THNG SM VÀ KHÁI NIM V MÃ 1.1. H THNG SM 1.1.1. Hm 1. Khái nim m là tp hp các phng pháp gi và biu din các con s bng các kí hiu có giá tr s ng xác nh gi là các ch s. 2. Phân loi Có th chia các hm làm hai loi: hm theo v trí và hm không theo v trí. a. Hm theo v trí: m theo v trí là hm mà trong ó giá tr s lng ca ch s còn ph thuc vào v trí ca nó ng trong con s c th. Ví d: H thp phân là mt hm theo v trí. S 1991 trong h thp phân c biu din bng 2 ch s “1” và “9”, nhng do v trí ng ca các ch s này trong con s là khác nhau nên s mang các giá tr s lng khác nhau, chng hn ch s “1” v trí hàng n v biu din cho giá tr s ng là 1 song ch s “1” v trí hàng nghìn li biu din cho giá tr s lng là 1000, hay ch s “9” khi hàng chc biu din giá tr là 90 còn khi hàng trm li biu din cho giá tr là 900. b. Hm không theo v trí: m không theo v trí là hm mà trong ó giá tr s lng ca ch s không ph thuc vào trí ca nó ng trong con s. m La Mã là mt hm không theo v trí. Hm này s dng các ký t “I”, “V”, “X” biu din các con s, trong ó “I” biu din cho giá tr s lng 1, “V” biu din cho giá tr s ng 5, “X” biu din cho giá tr s lng 10 mà không ph thuc vào v trí các ch s này ng trong con s c th. Các hm không theo v trí s không c cp n trong giáo trình này. 1.1.2. C s ca hm t s A bt k có th biu din bng dãy sau: A= a m-1 a m-2 a 0 a -1 a -n Trong ó a i là các ch s, ( 1 m n i − ÷ − = ); i là các hàng s, i nh: hàng tr, i ln: hàng già. Giá tr s lng ca các ch s a i s nhn mt giá tr nào ó sao cho tha mãn bt ng thc sau: 1Na0 i −≤≤ (a i nguyên) N c gi là c s ca hm. s ca mt hm là s lng ký t phân bit c s ng trong mt hm. Các h thng sm c phân bit vi nhau bng mt c s N ca h m ó. Mi ký t biu din mt ch s. Bài ging K THUT S Trang 2 Trong i sng hng ngày chúng ta quen s dng hm thp phân (decimal) vi N=10. Trong thng s còn s dng nhng hm khác là hm nh phân (binary) vi N=2, hm bát phân (octal) vi N=8 và hm thp lc phân (hexadecimal) vi N=16. - H nh phân : N =2 ⇒ a i = 0, 1. - H thp phân : N =10 ⇒ a i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. - H bát phân : N =8 ⇒ a i = 0, 1, 2, 3, 4, 5, 6, 7. - H thp lc phân : N =16 ⇒ a i = 0, 1, 2, …8, 9, A, B, C,D, E, F. Khi ã xut hin c s N, ta có th biu din s A di dng mt a thc theo c s N, c ký hiu là A (N) : A (N) = a m-1 .N m-1 + a m-2 .N m-2 + + a 0 .N 0 + a -1 .N -1 + + a -n .N -n Hay: ∑ − −= = 1m ni i i(N) NaA (1.1) i N=10 (h thp phân): A (10) = a m-1 .10 m-1 + a m-2 .10 m-2 + + a 0 .10 0 + + a -n .10 -n 1999,959 (10) =1.10 3 + 9.10 2 + 9.10 1 + 9.10 0 + 9.10 -1 + 5.10 -2 + 9.10 -3 i N=2 (h nh phân): A (2) = a m-1 .2 m-1 + a m-2 .2 m-2 + + a 0 .2 0 +a -n 2 -n 1101 (2) = 1.2 3 +1.2 2 + 0.2 1 + 1.2 0 = 13 (10) i N=16 (h thp lc phân): A (16) = a m-1 .16 m-1 + a m-2 .16 m-2 + + a 0 .16 0 + a -1 16 -1 + + a -n 16 -n 3FF (16) = 3.16 2 + 15.16 1 + 15.16 0 = 1023 (10) i N=8 (h bát phân): A (8) = a m-1 .8 m-1 + a m-2 .8 m-2 + + a 0 .8 0 + a -1 .8 -1 + + a -n .8 -n 376 (8) = 3.8 2 + 7.8 1 + 6.8 0 = 254 (10) Nh vy, biu thc (1.1) cho phép i các s bt k h nào sang h thp phân (h 10). 1.1.3. i c s 1. i t c s d sang c s 10 chuyn i mt s hm c s d sang hm c s 10 ngi ta khai trin con s trong c d di dng a thc theo c s ca nó (theo biu thc 1.3). Ví d 1.1 i s 1101 (2) h nh phân sang h thp phân nh sau: 1011 (2) = 1.2 3 + 0.2 2 + 1.2 1 + 1.2 0 = 11 (10) 2. i t c s 10 sang c s d chuyn i mt s t c s 10 sang c s d (d = 2, 8, 16) ngi ta ly con s trong c s 10 chia liên tip cho d n khi thng s bng không thì dng li. Kt qu chuyn i có c trong m c s d là tp hp các s d ca phép chia c vit theo th t ngc li, ngha là s d u tiên có trng s nh nht. (xem ví d 1.2) Chng 1. H thng sm và khái nim v mã Trang 3 Ví d 1.2: t lun: Gi d 1 , d 2 , ,d n ln lt là d s ca phép chia s thp phân cho c s d ln th 1, 2, 3, 4, , n thì kt qu chuyn i mt s t hm c s 10 (thp phân) sang hm c s d s là: d n d n-1 d n-2 d 1 , ngha là d s sau cùng ca phép chia là bít có trng s cao nht (MSB), còn d su tiên là bít có trng s nh nht (LSB). Trong các ví d trên, c s ca hm c ghi dng ch s bên di. Ngoài ra cng có th ký ch phân bit nh sau: B - H nh phân (Binary) O - H bát phân (Octal) D - H thp phân (Decmal) H - H thp lc phân (Hexadecimal) Ví d: 1010B có ngha là 1010 (2) 37FH có ngha là 37F (16) & Quy tc chuyn i gia các hm c s 2, 8, 16 ? 1.2. HM NH PHÂN VÀ KHÁI NIM V MÃ 1.2.1. Hm nh phân 1. Khái nim m nh phân, còn gi là hm c s 2, là hm trong ó ngi ta ch s dng hai kí hiu 0 và 1 biu din tt c các s. Hai ký hiu ó gi chung là bit hoc digit, nó c trng cho mch n t có hai trng thái n nh hay còn gi là 2 trng thái bn ca FLIP- FLOP (ký hiu là FF). Trong hm nh phân ngi ta quy c nh sau: - Mt nhóm 4 bít gi là 1 nibble. - Mt nhóm 8 bít gi là 1 byte. - Nhóm nhiu bytes gi là t (word), có th có t 2 bytes (16 bít), t 4 bytes (32 bít), hiu rõ hn mt s khái nim, ta xét s nh phân 4 bít: a 3 a 2 a 1 a 0 . Biu din di dng a thc theo c s ca nó là: a 3 a 2 a 1 a 0 (2) = a 3 .2 3 + a 2 .2 2 + a 1 .2 1 + a 0 .2 0 Trong ó: - 2 3 , 2 2 , 2 1 , 2 0 (hay 8, 4, 2, 1) c gi là các trng s. - a 0 c gi là bit có trng s nh nht, hay còn gi bit có ý ngha nh nht (LSB - Least Significant Bit), còn gi là bít tr nht. 1023 16 63 16 3 16 0 15 15 3 A (10) =1023 → A (16) =3FFH 13 2 6 2 3 2 1 1 0 1 2 0 1 A (10) =13 → A (2) =1101 Bài ging K THUT S Trang 4 - a 3 c gi là bit có trng s ln nht, hay còn gi là bít có ý ngha ln nht (MSB - Most Significant Bit), còn gi là bít già nht. Nh vy, vi s nh phân 4 bit a 3 a 2 a 1 a 0 trong ó mi ch s a i (i t 0 n 3) ch nhn c hai giá tr {0,1} ta có 2 4 = 16 t hp nh phân phân bit. ng sau ây lit kê các t hp mã nh phân 4 bít cùng các giá tr s thp phân, s bát phân và s thp lc phân tng ng. & T bng này hãy cho bit mi quan h gia các s trong h nh phân vi các s trong h bát phân (N=8) và h thp lc phân (N=16)? Tó suy ra phng pháp chuyn i nhanh gia các này? thp phân a 3 a 2 a 1 a 0 S bát phân S thp lc phân 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 A B C D E F ng 1.1. Các t hp mã nh phân 4 bít chuyn i gia các h thng s m khác nhau gi vai trò quan trng trong máy tính s. Chúng ta bit rng 2 3 = 8 và 2 4 = 16, t bng mã trên có th nhn thy mi ch s trong h bát phân ng ng vi mt nhóm ba ch s (3 bít) trong h nh phân, mi ch s trong h thp lc phân ng ng vi mt nhóm bn ch s (4 bít) trong h nh phân. Do ó, khi biu din s nh phân nhiu bit trên máy tính tránh sai sót ngi ta thng biu din thông qua s thp phân hoc thp c phân hoc bát phân. Ví d 1.3 : Xét vic biu din s nh phân 1011111011111110 (2) . 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 y, có th biu din : 137376 (8) theo h bát phân hoc : BEFE (H) theo h thp lc phân. 67 3 7 3 1 EFEB Chng 1. H thng sm và khái nim v mã Trang 5 & Vi s nh phân n bít có bao nhiêu t hp nh phân khác nhau? Xét trng hp s nh phân 8 bít (n=8) a 7 a 6 a 5 a 4 a 3 a 2 a 1 a 0 có bao nhiêu t hp nh phân (t mã nh phân) khác nhau? 2. Các phép tính trên s nh phân a. Phép cng cng hai s nh phân, ngi ta da trên qui tc cng nh sau: 0 + 0 = 0 nh 0 0 + 1 = 1 nh 0 1 + 0 = 1 nh 0 1 + 1 = 0 nh 1 Ví d 1.4 : 3 → 0011 2 → 0010 5 → 0101 = 1.2 2 + 1.2 0 = 5 (10) b. Phép tr 0 - 0 = 0 mn 0 0 - 1 = 1 mn 1 1 - 0 = 1 mn 0 1 - 1 = 0 mn 0 Ví d 1.5 : 7 → 0111 5 → 0101 2 → 0010 = 0.2 3 + 0.2 2 + 1.2 1 + 0.2 0 = 2 (10) c. Phép nhân 0 . 0 = 0 0 . 1 = 0 1 . 0 = 0 1 . 1 = 1 Ví d 1.6 : 7 → 0111 5 → 0101 35 0111 0000 0111 0000 0100011 = 1.2 5 + 1.2 1 + 1.2 0 = 35 (10) d. Phép chia 0 : 1 = 0 1 : 1 = 1 u ý: Khi chia s chia phi khác 0 + + - - x x Bài ging K THUT S Trang 6 Ví d 1.7: 10 5 → 1010 101 2 101 10 (2) = 2 (10) 00 0 ng dng thanh ghi dch thc hin phép toán nhân hai, chia hai: 1.2.2. Khái nim v mã 1. i cng Trong i sng hàng ngày, con ngi giao tip vi nhau thông qua mt h thng ngôn ng qui c, nhng trong máy tính và các h thng s ch x lý các d liu nh phân. Do ó, mt vn t ra là làm th nào to ra mt giao din d dàng gia ngi và máy tính, ngha là máy tính thc hin c nhng bài toán do con ngi t ra. Vì các máy tính s hin nay ch hiu các s 0 và s 1, nên bt k thông tin nào di dng các ch , ch cái hoc các ký t phi c bin i thành dng s nh phân trc khi nó có thc x lý bng các mch s. thc hin u ó, ngi ta t ra vn v mã hóa d liu. Nh vy, mã hóa là quá trình bin i nhng ký hiu quen thuc ca con ngi sang nhng ký hiu quen thuc vi máy tính. Nhng s liu ã mã hóa này c nhp vào máy tính, máy tính tính toán x lý và sau ó máy tính thc hin quá trình ngc li là gii mã chuyn i các bít thông tin nh phân thành các ký hiu quen thuc vi con ngi mà con ngi có th hiu c. Các lnh vc mã hóa bao gm: - Mã hóa s thp phân - Mã hóa ký t - Mã hóa tp lnh - Mã hóa ting nói - Mã hóa hình nh v v Phn tip theo chúng ta kho sát lnh vc mã hóa n gin nht là mã hóa s thp phân bng cách s dng các t mã nh phân. Vic mã hóa ký t, tp lnh, ting nói, hình nh u da trên c mã hóa s thp phân. 0 0 0 0 0 1 011 0 0 0 0 0 0 0 111 Thanh ghi ban u Thanh ghi sau khi dch trái 1 bít ch trái 1 bít ↔ nhân 2 0 0 0 0 0 0 10 1 1 0 Thanh ghi sau khi dch phi 1 bít ch phi 1 bít ↔ chia 20 Hình 1.1. ng dng thanh ghi dch thc hin phép toán nhân và chia 2 Chng 1. H thng sm và khái nim v mã Trang 7 2. Mã hóa s thp phân a. Khái nim Trong thc t mã hóa s thp phân ngi ta s dng các s nh phân 4 bit (a 3 a 2 a 1 a 0 ) theo quy c sau: 0 → 0000 ; 5 → 0101 1→ 0001 ; 6 → 0110 2 → 0010 ; 7 → 0101 3→ 0011 ; 8 → 1000 4→ 0100 ; 9 → 1001 Các s nh phân dùng mã hóa các s thp phân c gi là các s BCD (Binary Coded Decimal: S thp phân c mã hóa bng s nh phân). b. Phân loi Khi s dng s nh phân 4 bit mã hóa các s thp phân tng ng vi 2 4 = 16 t hp mã nh phân phân bit. Do vic chn 10 t hp trong 16 t hp mã hóa các ký hiu thp phân t 0 n 9 mà trong thc t xut hin nhiu loi mã BCD khác nhau. c dù tn ti nhiu loi mã BCD khác nhau, nhng có th chia làm hai loi chính: Mã BCD có trng s và mã BCD không có trng s. b1. Mã BCD có trng s là loi mã cho phép phân tích thành a thc theo trng s ca nó. Mã BCD có trng sc chia làm 2 loi là: mã BCD t nhiên và mã BCD s hc. Mã BCD t nhiên là loi mã mà trong ó các trng s thng c sp xp theo th t tng n. Ví d: Mã BCD 8421, BCD 5421. Mã BCD s hc là loi mã mà trong ó có tng các trng s luôn luôn bng 9.Ví d: BCD 2421, BCD 5121, BCD8 4-2-1 c trng ca mã BCD s hc là có tính cht i xng qua mt ng trung gian. Do y, tìm t mã BCD ca mt s thp phân nào ó ta ly bù (o) t mã BCD ca s bù 9 ng ng. Ví d xét mã BCD 2421. ây là mã BCD s hc (tng các trng s bng 9), trong ó s 3 (thp phân) có t mã là 0011, s 6 (thp phân) là bù 9 ca 3. Do vy, có th suy ra t mã ca 6 ng cách ly bù t mã ca 3, ngha là ly bù 0011, ta s có t mã ca 6 là 1100. b2. Mã BCD không có trng s là loi mã không cho phép phân tích thành a thc theo trng ca nó. Các mã BCD không có trng s là: Mã Gray, Mã Gray tha 3. c trng ca mã Gray là b mã trong ó hai t mã nh phân ng k tip nhau bao gi cng ch khác nhau 1 bit. Ví d: Các bng di ây trình bày mt s loi mã thông dng. Mã Gray: 2 → 0011 3 → 0010 4 → 0110 Còn vi mã BCD 8421: 3 → 0011 4 → 0100 Bài ging K THUT S Trang 8 ng 1.2: Các mã BCD t nhiên. BCD 8421 BCD 5421 BCD quá 3 a 3 a 2 a 1 a 0 b 3 b 2 b 1 b 0 c 3 c 2 c 1 c 0 thp phân 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 2 0 0 1 1 0 0 1 1 0 1 1 0 3 0 1 0 0 0 1 0 0 0 1 1 1 4 0 1 0 1 1 0 0 0 1 0 0 0 5 0 1 1 0 1 0 0 1 1 0 0 1 6 0 1 1 1 1 0 1 0 1 0 1 0 7 1 0 0 0 1 0 1 1 1 0 1 1 8 1 0 0 1 1 1 0 0 1 1 0 0 9 ng 1.3: Các mã BCD s hc BCD 2421 BCD 5121 BCD 84-2-1 a 3 a 2 a 1 a 0 b 3 b 2 b 1 b 0 c 3 c 2 c 1 c 0 thp phân 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 1 0 0 1 1 0 2 0 0 1 1 0 0 1 1 0 1 0 1 3 0 1 0 0 0 1 1 1 0 1 0 0 4 1 0 1 1 1 0 0 0 1 0 1 1 5 1 1 0 0 1 1 0 0 1 0 1 0 6 1 1 0 1 1 1 0 1 1 0 0 1 7 1 1 1 0 1 1 1 0 1 0 0 0 8 1 1 1 1 1 1 1 1 1 1 1 1 9 ng 1.4 : BCD t nhiên và mã Gray. BCD 8421 BCD quá 3 Mã Gray Gray quá 3 a 3 a 2 a 1 a 0 c 3 c 2 c 1 c 0 G 3 G 2 G 1 G 0 g 3 g 2 g 1 g 0 thp phân 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 1 1 2 0 0 1 1 0 1 1 0 0 0 1 0 0 1 0 1 3 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 4 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 5 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 6 0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 7 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 8 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 9 Chng 1. H thng sm và khái nim v mã Trang 9 Chú ý: Mã Gray c suy ra t mã BCD 8421 bng cách: các bit 0,1 ng sau bit 0 ( mã BCD 8421) khi chuyn sang mã Gray c gi nguyên, còn các bit 0,1 ng sau bit 1 ( mã BCD 8421) khi chuyn sang mã Gray thì o bít, ngha là t bit 1 thành bit 0 và bit 0 thành bit 1. 3. Mch nhn dng s BCD 8421: ch nhn dng s BCD 8421 nhn tín hiu vào là các bít a 3 , a 2 , a 1 ca s nh phân 4 bít a 3 a 2 a 1 a 0 , u ra y c quy nh nh sau: - Nu y = 1 thì a 3 a 2 a 1 a 0 không phi s BCD 8421 - Nu y = 0 thì a 3 a 2 a 1 a 0 là s BCD 8421 Nh vy, nu mt s nh phân 4 bit không phi là mt s BCD 8421 thì ngõ ra y = 1. T bng 1.1 ta thy mt s nh phân 4 bít không phi là s BCD 8421 khi bít a 3 luôn luôn bng 1 và (bit a 1 ng 1 hoc bít a 2 bng 1). Suy ra phng trình logic ca ngõ ra y: y = a 3 (a 1 + a 2 ) = a 3 a 1 + a 3 a 2 logic: ng do vic xut hin s BCD nên có hai cách nhp d liu vào máy tính: nhp s nh phân, nhp bng mã BCD. nhp s BCD thp phân hai ch s thì máy tính chia s thp phân thành các các và mi các c biu din bng s BCD tng ng. Chng hn: 11 (10) có thc nhp vào máy tính theo 2 cách: - S nh phân : 1011 - Mã BCD : 0001 0001 4. Các phép tính trên s BCD a. Phép cng Do s BCD ch có t 0 n 9 nên i vi nhng s thp phân ln hn s chia s thp phân thành nhiu các, mi các c biu din bng s BCD tng ng. Ví d 1.8 Cng 2 s BCD mt các: 5 → 0101 7 → 0111 3 → 0011 5 → 0101 8 1000 12 1100 0110 0001 0010 ch nhn dng BCD 8421 y a 3 a 2 a 1 a 1 a 2 a 3 y a 1 a 2 a 3 y hiu chnh + + + + + Bài ging K THUT S Trang 10 Có hai trng hp phi hiu chnh kt qu ca phép cng 2 s BCD 8421: - Khi kt qu ca phép cng là mt s không phi là s BCD 8421 - Khi kt qu ca phép cng là mt s BCD 8421 nhng li xut hin s nh bng 1. Vic hiu chnh c thc hin bng cách cng kt qu vi s hiu chnh là 6 (0110 2 ). ví d 1.8 ã xem xét trng hp hiu chnh khi kt qu không phi là mt s BCD 8421. Trng hp hiu chnh khi kt qu là mt s BCD 8421 nhng phép cng li xut hin s nh bng 1 c xem xét trong ví d sau ây: Ví d 1.9 Hiu chnh kt qu cng 2 s BCD mt các khi xut hin s nh bng 1: 8 → 1000 9 → 1001 17 1 0001 0110 0001 0111 b. Phép tr Phép toán tr 2 s BCD c thc hin theo quy tc sau ây: A - B = A + B Trong ó B là s bù 2 ca B. Ví d 1.10 Thc hin tr 2 s BCD mt các: 7 → 0111 0111 5 → 0101 1010 2 0010 1 0001 1 0010 u ý: - Bù 1 ca mt s nh phân là ly o tt c các bít ca só (bit 0 thành 1, bit 1 thành 0). - Bù 2 ca mt s nh phân bng s bù 1 cng thêm 1 vào bít LSB. Xét các trng hp m rng sau ây: 1. Thc hin tr 2 s BCD 1 các mà s b tr nh hn s tr ? 2. M rng cho cng và tr 2 s BCD nhiu các ? hiu chnh (6) + + t qu là s BCD 8421 nh ng i xut hin s nh bng 1 t qu sau khi hiu chnh là 17 Bù 1 ca 5 - - + + ng 1 LSB có bù 2 ca 5 i s nh t qu cui cùng . a 3 a 2 a 1 a 0 S bát phân S thp lc phân 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 00 01 0 010 0 011 010 0 010 1 011 0 011 1 10 00 10 01 1 010 10 11 110 0 11 01 111 0 11 11 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 A B C D E F ng. 1 0 1 0 0 1 1 0 1 1 1 2 0 0 1 1 0 1 1 0 0 0 1 0 0 1 0 1 3 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 4 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 5 0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 6 0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1. 1 3 0 1 0 0 0 1 1 1 0 1 0 0 4 1 0 1 1 1 0 0 0 1 0 1 1 5 1 1 0 0 1 1 0 0 1 0 1 0 6 1 1 0 1 1 1 0 1 1 0 0 1 7 1 1 1 0 1 1 1 0 1 0 0 0 8 1 1 1 1 1 1 1 1 1 1 1 1 9 ng 1. 4 : BCD t nhiên và mã Gray. BCD