Ch¬ng 4 - C¸c hÖ ®Õm thêng dïng trong tin häc CHƯƠNG 4. HỆ ĐẾM VÀ CÁC HỆ ĐẾM THƯỜNG DÙNG TRONG TIN HỌC 4.1. HỆ ĐẾM Để có cơ sở hình dung quá trình xử lý thông tin xảy ra bên trong MTĐT như thế nào, chúng ta cần có một số kiến thức về hệ đếm. Hệ đếm được hiểu như tập các ký hiệu và quy tắc sử dụng tập ký hiệu đó để biểu diễn và xác định giá trị các số. Có hai loại hệ đếm là hệ đếm không theo vị trí và hệ đếm theo vị trí. Hệ đếm không theo vị trí Hệ đếm La mã thuộc loại hệ đếm này. Tập các ký hiệu trong hệ đếm La mã gồm các chữ cái: I, V, X, L, C, D, M. Mỗi ký hiệu biểu thị một giá trị, cụ thể : I = 1 ; V = 5 ; X = 10; L = 50 ;C = 100 ; D = 500 ; M = 1000 Quy tắc để tính giá trị dùng trong hệ đếm La mã là: • Nếu các ký hiệu được xếp từ trái qua phải theo chiều giảm giá trị thì giá trị của biểu diễn số tính bằng tổng giá trị các ký hiệu. Ví dụ MLVI cho giá trị là 1000+50+5+1 = 1056. • Nếu trong biểu diễn số tính từ trái qua phải có một cặp hai ký hiệu mà ký hiệu đứng trước có giá trị nhỏ hơn thi giá trị của cặp đó tính bằng hiệu hai giá trị. Ví dụ CIX thể hiện số 109. Trong biểu diễn số không được có nhiều hơn hai ký hiệu liên tiếp xếp theo chiều tăng của giá trị. Biểu diễn IXC không hợp lệ vì nó sẽ gây nhập nhằng không đơn nghĩa với quy tắc tính giá trị. Như vậy, mỗi ký hiệu biểu thị một giá trị duy nhất, không phụ thuộc vào vị trí xuất hiện của nó trong biểu diễn số. Vì thế có tên gọi là hệ đếm không theo vị trí. Hệ đếm theo vị trí Trước hết xét hệ đếm thập phân (hệ đếm 10) chúng ta thường dùng gồm tập mười ký hiệu là các chữ số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Giá trị của mỗi chữ số trong hệ đếm 10 phụ thuộc vào vị trí của nó trong biểu diễn. Ví dụ, trong số 545, chữ số 5 ở hàng đơn vị mang giá trị 5 đơn vị trong khi đó chữ số 5 ở hàng trăm mang giá trị 500 đơn vị. Như vậy, giá trị của mỗi ký hiệu ở hệ đếm 10 phụ thuộc vào vị trí của nó trong biểu diễn số. Quy tắc tính giá trị là mỗi đơn vị ở một hàng bất kỳ có giá trị bằng 10 đơn vị của hàng kế cận bên phải. Do đó, giá trị của một biểu diễn có thể viết dưới dạng một đa thức của cơ số. Ví dụ: 536,4 = 5x10 2 + 3 x 10 1 + 6x10 0 + 4x10 -1 Hệ đếm theo vị trí là hệ đếm mà giá trị mỗi ký hiệu được dùng phụ thêm vào vị trí xuất hiện của nó trong biểu diễn số. Số lượng các ký hiệu khác nhau của hệ đếm gọi là cơ số của hệ đếm đó. Hệ đếm thập phân sử dụng 10 chữ số nên cơ số của hệ đếm đó là 10. 30 Chơng 4 - Các hệ đếm thờng dùng trong tin học Bt k mt s t nhiờn b no ln hn 1 u cú th chn lm c s cho h m. Cỏc ký hiu c dựng cho h m ú s l ký hiu i din cho cỏc giỏ tr: 0, 1 , b-1. Nu mt s N trong h m c s b cú biu din l : N = d n d n-1 d n-2 d 1 d 0 , d -1 d -2 d -m thỡ giỏ tr ca N c tớnh theo cụng thc : N = d n b n + d n-1 b n-1 + + d 0 b 0 + d -1 b -1 + + d -m b -m õy cỏc d i tha món iu kin 0 d i < b cũn n+1 l s lng cỏc ch s bờn trỏi, v m l s lng cỏc ch s bờn phi du phõn chia phn nguyờn v phn phõn ca s N. Cú th chng minh c rng vi mi s t nhiờn N tn ti duy nht mt cỏch biu din N di dng a thc theo lu tha ca b. Vớ d s 17 trong h m c s 3 cú biu din l 122 vỡ 17 = 1.3 2 + 2.3 1 + 2.3 0 Cỏc h m nh phõn v Hexa Ngoi h m 10, trong Tin hc ngi ta thng dựng mt s h m sau õy: H m nh phõn l h m c s 2 vi hai ch s l 0 v 1. H m c s mi sỏu cũn gi l h Hexa. H Hexa s dng cỏc ký hiu: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Trong ú A, B, C, D, E, F tng ng cỏc giỏ tr t 10, 11, 12, 13, 14, 15. Trong cỏc trng hp cn thit, phõn bit s c biu din h m no ngi ta vit c s lm ch s cho s ú. Vớ d: 101 2 , 5 16 . Bng 4.1 di õy th hin 19 s t nhiờn u tiờn cỏc h m 10, 2 v 16. Thp phõn Nh phõn H 16 Thp phõn Nh phõn H 16 0 0 0 10 1010 A 1 1 1 11 1011 B 2 10 2 12 1100 C 3 11 3 13 1101 D 4 100 4 14 1110 E 5 101 5 15 1111 F 6 110 6 16 10000 10 7 111 7 17 10001 11 31 Chơng 4 - Các hệ đếm thờng dùng trong tin học 8 1000 8 18 10010 12 9 1001 9 19 10011 13 Bng 4.1 4.2. BIN I BIU DIN S Di õy chỳng ta s xem xột vic bin i biu din s t mt h m ny sang mt h m khỏc. 4.2.1. Bin i biu din s h m bt k sang h m thp phõn Cho s N trong h m c s b : N = (d n d n-1 d n-2 d 1 d 0 , d -1 d -2 d -m ) b Trc ht xột trng hp N l nguyờn. tỡm biu din ca s nguyờn N trong h m thp phõn, ta tin hnh cỏc bc sau: - Vit N di dng a thc ca c s b : N = d n b n + d n-1 b n-1 + d n-2 b n-2 + + d 0 - Tớnh tớnh giỏ tr ca a thc ny, gim s lng phộp tớnh khi tớnh giỏ tr ca a thc tt hn ht l tớnh theo s Horner N = d 0 + b(d 1 + b(d 2 + b(d 3 + bd n )) ) Trng hp cú phn phõn thỡ ta tỏch phn nguyờn v phn l. Mi phn c bin i riờng v sau ú kt ni hai kt qu cú biu din ca s cn tỡm. Vớ d: 1110,101 2 = ? 10 . Sau khi tỏch ra, ta cú phn nguyờn l: 1110 v phn l l 101. Vi phn nguyờn, thc hin tớnh toỏn theo s trờn, ta cú: 1110 2 = 0 + 2(1+2(1+2.1)) = 14 Vi phn phõn, ta cng vit ra di dng a thc v tớnh giỏ tr a thc: 0,101 2 = 1x2 -1 + 1x2 -3 = 0,5 + 0,125 = 0,635 Vy 1110,101 2 = 14,625 10 Mt vớ d khỏc: D3F,4 16 = ? 10 . Cng thc hin theo quy tc trờn, ta cú: Phn nguyờn, D3F 16 = F + 16(3 + 16xD)= 15 + 16(3 + 16x13) = 3391 Phn l 0,4 = 4.16 -1 = 0,25 . Vy, D3F,4 16 = 3391,25 10 4.2.2. Bin i biu din s h m thp phõn sang h m cú c s bt k Trc ht ta tỏch phn nguyờn v phn phõn ri tin hnh bin i chỳng riờng bit. Sau ú chỳng ta s ghộp li cú kt qu cn tỡm. Bin i s nguyờn 32 Ch¬ng 4 - C¸c hÖ ®Õm thêng dïng trong tin häc Cho N là số tự nhiên. Ta viết N duới dạng đa thức: N = d n b n + d n-1 b n-1 + + d 0 (1) Nhận xét rằng, 0≤ d 0 < b. Do vậy, khi chia N cho b thì phần dư của phép chia đó là d 0 còn thương số N1 sẽ là: N1 = d n b n-1 + d n-1 b n-2 + + d 1 (2) Tương tự, d1 chính là phần dư của phép chia N1 cho b, gọi N2 là thương của phép chia ấy. Quá trình chia như vậy được thực hiện liên tiếp và ta sẽ lần lượt nhận đựơc giá trị các d i . Quá trình sẽ dừng lại khi nhận được thương số bằng 0. Để có biểu diễn cần tìm, các phần dư thu được cần sắp xếp theo thứ tự ngược lại. Ví dụ. 52 10 = ? 2 = ? 16 . Sơ đồ chia liên tiếp dưới đây minh hoạ quá trình thực hiện theo giải thuật nói trên. 52 2 52 16 0 26 2 4 3 16 0 13 2 3 0 1 6 2 0 3 2 1 1 2 1 0 Như vậy 52 10 = 110100 2 = 34 16 Biến đổi phần lẻ Kí hiệu N’ là phần lẻ (phần sau dấu phẩy thập phân) của số N. Giả sử N’ được biểu diễn dưới dạng đa thức của cơ số b như sau: N’ = d -1 b -1 + d -2 b -2 + d -m b -m (1') Nhân hai vế của (1') với b, ta thu được: N’1 = d -1 + d -2 b -1 + d -m b -(m -1) Ta nhận thấy, d -1 chính là phần nguyên của kết quả phép nhân. Còn phần lẻ của kết quả là: N'2 = d -2 b -1 + d -m b -(m -1) (2') Lặp lại phép nhân như trên đối với (2'), ta thu được d -2 là phần nguyên. Thực hiện liên tiếp phép nhân theo cách trên, cuối cùng thu được dãy d -1 d -2 d -3 d -m : trong đó 0 ≤d -1 < b. Đó chính là giá trị của các chữ số trong biểu diễn cần tìm. Ví dụ. 0,35 10 = ? 2 = ? 16 33 Ch¬ng 4 - C¸c hÖ ®Õm thêng dïng trong tin häc Quá trình thực hiện được thể hiện như trong các Bảng 4.2a và 4.2b dưới đây (nhân đôi cột bên phải, phần nguyên ghi ở cột 1). 34 Chơng 4 - Các hệ đếm thờng dùng trong tin học Phn nguyờn Phn phõn Phn nguyờn Phn phõn 35 x 2 35 x 16 0 70 x 2 5 60 x 16 1 40 x 2 9 60 0 80 x 2 Bng 4.2b 1 60 x 2 1 20 Bng 4.2a Vy 0.35 10 = 0. 01010 2 = 0.59 16 Quỏ trỡnh trờn trong mt s trng hp cú th kộo di vụ hn. Tu yờu cu v chớnh xỏc cn thit m quyt nh cn dng bc no. Nh vy kt qu ca vic bin i biu din mt s cú hu hn ch s l trong h m c s ny cú th cho ra mt biu din s cú vụ hn (tun hon) ch s l trong h m c s khỏc. 4.2.3. Bin i biu din s trong cỏc h m c bit V nguyờn tc cú th i bt c mt biu din s trong h m c s b1 bt k sang mt biu din s trong mt h m c s b2 bt k khỏc. iu rc ri l ch ta phi nh c bng nhõn v bng chia trong s hc ca cỏc s biu din trong c s b1 hoc b2. Nu khụng bit c bng nhõn v chia thỡ cú th ta phi i hai ln thụng qua mt h m trung gian m ta ó bit bng nhõn v chia nh h thp phõn chng hn. Khi ú i mt s x trong mt h m c s b1 sang h m ca c s b2 ta cú th i x thnh biu din trong h thp phõn ri t ú tỡm biu din ca chỳng trong h m c s b2. Trong mt s trng hp c bit khi b1 v b2 l lu tha ca nhau thỡ cú th i mt cỏch trc tip mt cỏch d dng. Nu b1 = b2 k thỡ trong h m c s b2, b1 s cú biu din l 100 00 vi k ch s 0. Vic chia hay nhõn mt s vi 100 00 thc cht l tỏch tng nhúm k ch s. Vớ d cú s 932452356 m ta phi chia v tỏch phn d liờn tip vi s chia l 100 thỡ kt qu s l cỏc nhúm s 9| 32| 45| 23| 56. Ta ỏp dng nhn xột ny i biu din s gia h m c s 2 v c s 16 l hai h m thng dựng trong tin hc. Trong trng hp ny 16 = 2 4 35 Chơng 4 - Các hệ đếm thờng dùng trong tin học Bin i biu din s ca h m nh phõn v h m c s 16. Quy tc thc hnh sau i biu din s h nh phõn sang h 16 nh sau: Gp cỏc ch s nh phõn thnh tng nhúm bn ch s v hai phớa k t v trớ phõn cỏch phn nguyờn v phn phõn. Thay mi nhúm 4 ch s nh phõn bi mt ký t tng ng h m 16. Vớ d: 1011100101,11 2 . Ta gp thnh tng nhúm bn ch s nh phõn: 0010 1110 0101,1100 2 Thay mi nhúm tng ng bng mt ký t h 16 (xem bng tng ng gia cỏc s h 2 h 10 v h 16 trờn): 0010 2 tng ng 2 16 ; 1110 2 tng ng E 16 0101 2 tng ng E 16 ; 1100 tng ng C 16 T ú, 1011100101.11 2 = 2E5, C 16 tng ng S 16 i ngc li, s h 16 sang s h nh phõn ta ch cn thay mi ký t h 16 thnh nhúm 4 ký t tng ng h nh phõn. Vớ d: 3,D7EF 16 = 11.1101 0111 1110 1111 2 4.3. S HC NH PHN Tng t nh s hc thp phõn, s hc nh phõn cng bao gm 4 phộp toỏn c bn: cng, tr, nhõn, chia. Cỏch thc hin cỏc phộp toỏn ú cng tng t nh cỏc phng phỏp ó bit i vi s thp phõn. Bng 4.3 sau õy l bng cng v nhõn cỏc s 1 bit. X y x+ y x.y 0 0 0 0 0 1 1 0 1 0 1 0 1 1 10 1 Bng 4.3 Vớ d Phộp cng Phộp tr 110011010 + 11001001 1010100011 - 11001001 = 1001100011 = 111011010 36 Ch¬ng 4 - C¸c hÖ ®Õm thêng dïng trong tin häc Phép nhân trong hệ nhị phân rất đơn giản vì khi nhân với mỗi hàng của số nhân ta chỉ phải nhân với 1 hoặc 0, có nghĩa là sao lại số bị nhân hoặc dịch trái một vị trí. Phép chia cũng đơn giản vì khi ước lượng các chữ số ở thương ta chỉ phải chọn một trong hai khả năng là 0 và 1. Phép nhân Phép chia 1101 x 101 1000001 1101 -1101 101 1101 + 0 1101 000110 0001101 - 1101 = 1000001 0000000 Câu hỏi và bài tập 1. Hãy đổi biểu diến các số thập phân sau đây ra hệ nhị phân: 5; 9; 17; 27; 23.14; 6.625 2. Hãy đổi biểu diễn các số nhị phận sau đây ra hệ thập phân: 11; 111; 1001; 1101; 1011.110 3. Vì sao người ta sử dụng hệ nhị phân để biểu diễn thông tin cho MTĐT? 4. Hãy tính giá trị của các biểu thức dưới dạng nhị phân sau đây: + 1101 * a - 1101 * (b - a) + a * 1000 + b: 100 Với a = 111 và b = 1010 5. Đổi các số nhị phân sau đây ra hệ 16: 11001110101 1010111000101 1111011101.1100110 6. Đổi các số hệ 16 ra hệ nhị phân 3F8; 35AF; A45; FF6E.CD2 37 . của cơ số b như sau: N’ = d -1 b -1 + d -2 b -2 + d -m b -m (1') Nhân hai vế của (1') với b, ta thu được: N’1 = d -1 + d -2 b -1 + d -m b -( m -1 ) Ta nhận thấy, d -1 . Ch¬ng 4 - C¸c hÖ ®Õm thêng dïng trong tin häc CHƯƠNG 4. HỆ ĐẾM VÀ CÁC HỆ ĐẾM THƯỜNG DÙNG TRONG TIN HỌC 4. 1. HỆ ĐẾM Để có cơ sở hình dung quá trình xử lý thông tin xảy ra bên trong. 13 1101 D 4 100 4 14 1110 E 5 101 5 15 1111 F 6 110 6 16 10000 10 7 111 7 17 10001 11 31 Chơng 4 - Các hệ đếm thờng dùng trong tin học 8 1000 8 18 10010 12 9 1001 9 19 10011 13 Bng 4. 1 4. 2. BIN