[r]
(1)Trường CĐSP Bến Tre
⎯⎯⎯⎯⎯FG⎯⎯⎯⎯⎯
Tổ Tin Học
Giáo trình
Chủ biên Võ Thanh Ân
Lưu hành nội
(2)CHƯƠNG 1: CÁC HỆ THỐNG SỐ
9 NGUYÊN LÝ CỦA VIỆC VIẾT SỐ
9 CÁC HỆ THỐNG SỐ
9 BIẾN ĐỔI QUA LẠI GIỮA CÁC HỆ THỐNG SỐ
9 CÁC PHÉP TOÁN SỐ NHỊ PHÂN
9 MÃ HOÁ
• Mã BCD
• Mã Gray
I GIỚI THIỆU
Nhu cầu định lượng trao đổi thương mại, có từ xã hội hình thành Đã có nhiều cố gắng việc tìm kiếm vật dụng, ký hiệu … dùng cho việc định lượng que gỗ, vỏ sò, số La mã…
Việc sử dụng hệ thống số ngày quen thuộc, khiến quên hình thành qui tắc viết số
Phần nhắc lại cách sơ lượt nguyên lý việc viết số giới thiệu hệ thống số khác hệ thống thập phân quen thuộc Chúng ta sẽđặt biệt ý đến hệ thống nhị phân hệ thống dùng lĩnh vực tin học – điện tử
II NGUYÊN LÝ CỦA VIỆC VIẾT SỐ
Một sốđược viết cách đặt kề ký tựđược chọn tập hợp Mỗi ký hiệu sốđược gọi số mã (số hạng – digit)
Ví dụ, hệ thống thập phân, tập hợp gồm 10 ký hiệu quen thuộc, số từ đến
S10 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Khi số gồm nhiều số mã viết, giá trị số mã tuỳ thuộc vị trí số Giá trị gọi trọng số số mã Ví dụ, số 1998 hệ thập phân, số đầu sau số có trọng số 900 số thứ hai 90
Tổng quát, hệ thống sốđược gọi hệ b gồm b ký hiệu tập hợp: Sb = {S0, S1, S2, … Sb–1 }
Một số n hệ b viết dạng:
N = (anan–1an–2…ai…a1a0,a–1a–2…a–m) với ∈ S Sẽ có giá trị:
∑ − = − − − − − − − − + + + + + + + + = + = n m i i i m m i i n n n
nb a b ab a b a b a b a b ab
a
N
2 1 0 1
III CÁC HỆ THỐNG SỐ
1 Hệ thập phân – Decimal system – Cơ số 10
Hệ thập phân dùng 10 chữ số: để biểu diễn số
Ví dụ: Tính giá trị 1 234 567 hệ thập phân Biểu diễn theo công thức tổng quát:
(3)2 Hệ nhị phân – Binary system – Cơ số
Hệ nhị phân dùng chữ số : 0 1để biểu diễn số
Ví dụ: Tính giá trị số100 111 hệ nhị phân Biểu diễn theo công thức tổng quát:
100 111Bin = 1*25 + 0*24 + 0*23 + 1*22+ 1*21 + 1*20
100 111Bin = 100 000Bin + 00 000Bin + 000Bin + 100Bin + 10Bin + Nếu đổi sang số 10 ta được:
100 111Bin Ù 32Dec + 0Dec + 0Dec + 4Dec + 2Dec + 1Dec 100 111Bin Ù 39Dec
3 Hệ bát phân – Octal system – Cơ số
Hệ bát phân dùng chữ số: 0 7để biểu diễn số
Ví dụ: Tính giá trị số123 456 hệ bát phân Biểu diễn theo công thức tổng quát:
123 456Oct = 1*85 + 2*84 + 3*83 + 4*82 + 5*81 + 6*80
123 456Oct = 100 000Oct + 20 000Oct + 000Oct + 400Oct + 50Oct + 6Oct Nếu đổi sang số 10 ta được:
123 456Oct Ù 32768Dec + 8192Dec + 1536Dec + 256Dec + 40Dec + 6Dec 123 456Oct Ù 42 798Dec
4 Hệ thập lục phân – Hexadecimal system – Cơ số 16
Hệ thập lục phân dùng 16 chữ số: 0 A B C D E F để biểu diễn số
Ví dụ: Tính giá trị số 4B hệ thập lục phân Biểu diễn theo công thức tổng quát:
4BHex = 4*161 + B*160 4BHex = 40Hex + BHex Nếu theo số 10 ta có: 4BHex Ù 64Dec + 11Dec 4BHex Ù 75Dec
IV BIẾN ĐỔI QUA LẠI GIỮA CÁC CƠ SỐ
1 Đổi số từ hệ b sang hệ 10
Đểđổi số từ hệ b sang hệ 10 ta khai triển trực tiếp đa thức b Một số N hệ b viết:
m i
n n
b a a a a a a a
N = −1 0 −1 −2 − với ai∈Sb
Có giá trị tương ứng với hệ số 10 là:
∑ − = − − − − − − − − + + + + + + + + = + = n m i i i m m i i n n n
nb a b ab a b a b a b a b ab
a
N
2 1 0 1 10
Ví dụ 1: Đổi số 1010,11 số sang số 10 ta làm sau: 1011,112 Ù 1.23 + 0.22 + 1.21 + 1.20 + 1.2–1 +1.2–2
(4)4B,8F16 Ù 4*16 + B*16 + 8*16 + 15*16 4B,8F16 Ù 64 + 11 + 0,5 + 0.05859375
4B,8F16 Ù 75,5585937510
2 Đổi số từ hệ 10 sang hệ b
Đây tốn tìm dãy ký hiệu cho số N viết hệ b Một số N viết dạng số 10 viết số b có dạng sau:
N = (anan–1…a0,a–1a–2…a–m)b = (anan–1…a0)b + (0,a–1a–2…a–m)b Trong đó:
(anan–1…a0)b = PE(N) phần nguyên N (0,a–1a–2…a–m)b = PF(N) phần thập phân N
Có cách biến đổi khác cho phần nguyên phần thập phân
• Phần nguyên – PE(N) Phần nguyên viết lại sau:
PE(N) = (anbn–1 + an–1bn–2 +…+a1)b + a0
Ta thấy rằng, lấy PE(N) chia cho b ta có số dư a0, thương PE’(N) = (anbn–1 + an–1bn–2 +…+ a1)b Vậy số dư lần thứ bit có trọng số nhỏ (bit LSB)
Tiếp tục phép chia cuối cùng, bit lớn (MSB)
• Phần thập phân – PF(N)
Phần thập phân có thểđược viết lại sau: PF(N) = b–1(a–1 + a–2b–1 + … + a–mb–m+1)
Ta thấy nhân PF(N) với b ta a–1 + a–2b–1 + … + a–mb–m+1 = a–1 + PF’(N) Vậy a–1 bit lẽđầu tiên phần thập phân
Tiếp tục lặp lại tốn nhân phần lẽ kết có phép nhân trước với b kết phần lẽ 0, ta tìm dãy số (a–1a–2a–3 … a–m)
Chú ý: Phần thập phân số N đổi sang hệ b gồm vô số số hạng (do kết phần thập phân có ln khác 0), tuỳ theo yêu cầu độ xác kết mà ta lấy số số hạng định
Ví dụ: Đổi số 6,3 sang hệ nhị phân
Phần nguyên ta thực sau:
6 2
0 2
1 2
1
Phần thập phân ta thực sau:
0,3*2 = 0,6 Ỵ a–1 = Lấy phần chẳn 0,6*2 = 1,2 Ỵ a–2 = Lấy phần chẳn 0,2*2 = 0,4 Ỵ a–3 =
0,4*3 = 0,8 Ỵ a–4 = 0,8*2 = 1,6 Î a–5 = 0,6*2 = 1,2 Î a–6 =
0,2*2 = 0,4 Ỵ a–7 = (tiếp tục…)
Kết phép chia không (kết thúc) Lấy ngược phần dư
(5)Như kết tốn nhân ln ln khác 0, kết toán cần số lẽ ta lấy PF(N) = 0,01001
Kết cuối là: 6,310 Ù110,011112
3 Đổi số từ hệ b sang hệ bk
Từ cách triển khai đa thức số N hệ b, ta nhóm thành k số hạng từ dấu phẩy phía đặt thành thừa số chung
N = anbn + … + a4b4 + a3b3 + a2b2 + a1b1 + a0b0 + a–1b–1 + a–2b–2 + a–3b–3 + … + a– mb–m
Giả sử k =3 số N viết lại sau:
N = … + (a5b2 + a4b1 + a3b0)b3 + (a2b2 + a1b1 + a0b0)b0 +(a–1b2 + a–2b1 + a–3b0)b–3 + …
Phần chứa dấu ngoặc ln nhỏ bk (k=3), số số hệ bk biểu diễn ký hiệu tương ứng hệ
Ví dụ 1: Đổi số 10011101010,10011 từ hệ số sang hệ số (k=3 = 23) Từ dấu phẩy gom số, ta thêm số vào bên trái số bên phải sau dấu phẩy cho đủ nhóm (k=3) số, ta sau:
010 011 101 010, 100 110(2) Ù2352,46(8)
Ví dụ 2: Đổi số 10011101010,10011 từ hệ số sang hệ số 16 (k=4 16 = 24)
Từ dấu phẩy gom số, ta thêm số vào bên trái số bên phải sau dấu phẩy cho đủ nhóm (k=4) số, ta sau:
0100 1110 1010, 1001 1000(2) Ù4EA,98(16)
Ngoài ra, ta biến đổi số từ bk sang bp thực trung gian qua hệ b Điều dễ dàng suy từ ví dụ trên, đọc giả tự nghiên cứu
Dưới bảng kê sốđầu tiên hệ số thường gặp:
Thập phân
Nhị phân
Bát phân
Thập lục phân
Thập phân
Nhị phân
Bát phân
Thập lục phân
0 00000 0 11 01011 13 B
1 00001 1 12 01100 14 C
2 00010 2 13 01101 15 D
3 00011 3 14 01110 16 E
4 00100 4 15 01111 17 F
5 00101 5 16 10000 20 10
6 00110 6 17 10001 21 11
7 00111 7 18 10010 22 12
8 01000 10 19 10011 23 13
9 01001 11 20 10100 24 14
(6)2 Mã BCD (Binary Coded Decimal)
Mã BCD dùng số bit nhị phân thay cho số hạng số thập phân
Ví dụ: Số 729(10) có mã BCD 0111 0010 1001(BCD)
Mã BCD thuận lợi để mạch điện tửđọc giá trị thập phân hiển thị đèn bảy đoạn (led đoạn) thiết bị sử dụng kỹ thuật số khác
3 Mã Gray
Mã Gray hay họi mã cách khoảng đơn vị
Nếu quan sát thông tin từ máy đếm, đếm kiện tăng dần đơn vị số nhị phân Ta sẽđược số nhị phân thay đổi Tại thời điểm quan sát, có lỗi quan trọng, ví dụ từ số (0111) số (1000), phần tử nhị phân phải thay đổi q trình đếm giao hốn khơng bắt buộc xảy đồng thời, ta có trạng thái liên tiếp sau chẳn hạn:
0111 Ỉ 0101 Æ 0100 Æ 1100 Æ 1001
Trong quan sát ngắn, kết thấy khác Để tránh tượng này, người ta cần mã hoá số hạng sau cho số liên tiếp khác phần tử nhị phân (1 bit) gọi mã cách khoảng đơn vị hay mã Gray gọi mã phản chiếu (do tính đối xứng số hạng tập hợp mã, giống phản chiếu qua gương)
Người ta thành lập mã Gray dựa vào tính chất đối xứng Để thực mã Gray nhiều bit, ta thực từ tập mã Gray bit Ta làm sau:
0 0 00 000 0000
1
0
01 11 10
0 001 0001
1bit 1 011 0010
0 010 0011
bit 10 100 0100
11 111 0101
01 101 0110
00 100 0111
bit 100 1000
101 1001
111 10 1010
100 11 1011
010 12 1100
011 13 1101
001 14 1110
000 15 1111
bit Dec Bin
Ta có cách khác để xác định số mã Gray tương ứng với mã nhị phân sau:
- Xác định số nhị phân tương ứng với Gray cần tìm
(7)- Dịch trái số nhị phân bit sau cộng khơng số nhớ với số nhị phân đó, bỏ bit cuối
Ví dụ: Xác định số 14 mã Gray ta làm sau: Xác định số nhị phân tương ứng: 14(10) Ù1110(2)
Dịch trái bit số 1110(2) ta số 11100(2), sau cộng bỏ bít cuối sau: + 11100 1110 ÅÅ S Sốố nh nhịị phân t phân tươương ng ứứng 14(10) ng 14(10) dịch trái bít