Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
4
CHƯƠNG 1. HỆ THỐNG SỐ ĐẾM
1.1. CƠ SỐ - CHUYỂN ĐỔI CƠ SỐ
1.1.1. Khái niệm
Bất cứ một số nguyên dương R (R>1) đều có thể được chọn làm cơ số cho một
hệ thống số.
Nếu hệ thống có cơ số R thì các số từ 0 đến (R-1) được sử dụng.
Ví dụ: nếu R=8 thì các chữ số cần thiết là 0,1,2,3,4,5,6,7.
Các hệ thống cơ số thông dụng trong kỹ thuật số:
• Thập phân (cơ số 10).
• Nhò phân (cơ số 2).
• Bát phân (cơ số 8).
• Thập lục phân (cơ số 16).
Một hệ thống với cơ số R được biểu diễn dưới dạng
(…a
3
a
2
a
1
a
0
a
-1
a
-2
a
-3
…)
R
Khai triển theo hàm mũ của R.
N =(a
3
a
2
a
1
a
0
a
-1
a
-2
a
-3
)
R
= a
3
.R
3
+ a
2
.R
2
+ a
1
.R
1
+ a
0
.R
0
+ a
-1
.R
-1
+ a
-2
.R
-2
+ a
-3
.R
-3
Với các cơ số lớn hơn 10 thì cần phải thêm các ký hiệu để biểu hiện các số lớn
hơn 10. Ví dụ hệ thập lục phân (hex) có cơ số 16 thì A biểu thò 10, B biểu thò
11,…, F biểu thò 15.
Đổi giữa các cơ số
Phần ngun và phần thập phân được đổi một cách riêng biệt
Phần ngun được đổi bằng cách sử dụng phép chia lặp cho cơ số mới và sử
dụng chuỗi các số dư phát sinh để tạo ra số mới. Phép tính số học được thực
hiện trên các số hạng của cơ số cũ
Phần thập phân được đổi bằng cách nhân lặp lại cho cơ số mới, sử dụng các
số ngun được tạo ra để biểu thị phân số được chuyển đổi, phép tính số
học được thực hiện trên các cơ số cũ
Phần
ngun
Phần thập
phân
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
5
Ví dụ: Biến đổi phần ngun trong hệ cơ số 10 sang hệ cơ số R
N = (a
n
a
n-1
…a
2
a
1
a
0
)
R
= a
n
.R
n
+ a
n-1
.R
n-1
+ … + a
2
.R
2
+ a
1
.R
1
+ a
0
Nếu chia N cho R, nhận được số dư là a
0
R
N
= a
n
.R
n-1
+ a
n-1
.R
n-2
+ … + a
2
.R
1
+ a
1
+
R
a
0
= Q
1
+ số dư a
0
Chia Q
1
cho R
R
Q
1
= a
n
.R
n-2
+ a
n-1
.R
n-3
+ … + a
3
.R
1
+ a
2
+
R
a
1
= Q
2
+ số dư a
1
Quá trình trên được thực hiện tiếp tục cho đến khi tìm được tất cả các hệ số a
n
Ví dụ: Biến đổi phần thập phân của hệ cơ số 10 sang hệ cơ số R
F = (a
-1
a
-2
a
-3
…a
-m
)
R
= a
-1
.R
-1
+ a
-2
.R
-2
+ a
-3
.R
-3
+… + a
-m
.R
-m
Nhân F với R
FR = a
-1
+ a
-2
.R
-1
+ a
-3
.R
-2
+… + a
-m
.R
-m+1
= a
-1
+ F
1
Với a
-1
là phần nguyên, F
1
là phần lẻ của phép nhân
Tiếp tục nhân R với F
1
F
1
.R = a
-2
+ a
-3
.R
-1
+ a
-4
.R
-2
+ … + a
-m
.R
-m+2
= a
-2
+ F
2
Tiếp tục quá trình cho đến khi xác đònh hết các hệ số a
-m
Biến đổi giữa 2 cơ số khơng phải là cơ số 10 có thể thực hiện dễ dàng bằng cách
đầu tiên biến đổi sang cơ số 10 rồi biến đổi tiếp từ cơ số 10 sang cơ số mới.
1.1.2. Hệ thập phân (hệ cơ số 10)
Hệ thập phân được kết hợp bởi 10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Một chữ số trong hệ thập phân được biểu diễn theo các số mũ của 10.
Số mang trọng số lớn nhất gọi là MSD (most significant digit)
Số mang trọng số nhỏ nhất gọi là LSD (least significant digit)
Ví dụ: Số 5346,72 biểu diễn như sau:
5346,72 = 5.10
3
+ 3.10
2
+ 4.10 + 6 + 7.10
-1
+ 2.10
-2
5
3 4 6 7
2
10
3
,
10
2
10
1
10
0
10
-2
10
-1
MSD
Điểm thập
phân
LSD
Trọng số
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
6
• Đếm trong hệ thập phân:
0 10 100
1 11 101
2 12 102
3 13 103
4 14 104
5 105
6 106
7 107
8 108
9 99 109
Tổng quát với N chữ số có thể đếm được 10
N
số khác nhau, bao gồm cả số 0. Số
thập phân lớn nhất là 10
N
– 1.
1.1.3. Hệ nhị phân (hệ cơ số 2)
Hệ nhò phân dùng hai chữ số 0, 1.
Một số trong hệ nhò phân được biểu diễn theo số mũ của 2.
Một chữ số nhò phân gọi là bit.
Chuỗi 4 bit nhò phân gọi là nibble.
Chuỗi 8 bit gọi là byte.
Chuỗi 16 bit gọi là word.
Chuỗi 32 bit gọi là double word.
Chữ số nhò phân bên phải nhất của chuỗi bit gọi là bit có ý nghóa nhỏ nhất (least
significant bit – LSB)
Chữ số nhò phân bên trái nhất của chuỗi bit gọi là bit có ý nghóa lớn nhất (most
significant bit – MSB).
Thường dùng chữ B cuối chuỗi bit để xác đònh đó là số nhò phân.
Ví dụ: Số 1011,101B biểu diễn giá trò số:
1011,101B = 1.2
3
+ 0.2
2
+ 1.2
1
+1.2
0
+ 1.2
-1
+ 0.2
-2
+ 1.2
-3
1
0
1
10
1
2
3
1
2
2
2
1
2
0
2
-3
2
-1
MSB
Điểm nhò
phân
LSB
Trọng số
2
-2
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
7
• Đếm trong hệ nhò phân
Xét bộ đếm 4 bit, bắt đầu với tất cả các bit = 0
2
3
= 8 2
2
= 4 2
1
= 2 2
0
= 1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
Cũng như trong hệ thập phân, nếu dùng N bit sẽ đếm được 2
N
lần.
• Chuyển số nhò phân thành số thập phân:
Phương pháp: Cộng trọng số các bit 1
Ví dụ: 1011,11B = 1.2
3
+ 0.2
2
+ 1.2
1
+ 1 + 1.2
-1
+ 1.2
-2
= 11,75
• Chuyển số thập phân thành số nhò phân:
Phương pháp:
Phần nguyên: Chia 2, nhớ lại số dư
Phần thập phân: Nhân 2, nhớ lại phần nguyên
Ví dụ: Chuyển (25)
10
ra số nhò phân
12
2
25
= + số dư 1
6
2
12
= + số dư 0
3
2
6
=
+ số dư 0
1
2
3
=
+ số dư 1
0
2
1
=
+ số dư 1
25 = 1 1 0 0 1
MSB LSB
Trọng so
á
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
8
Ví dụ: Chuyển (0,625)
10
thành số nhò phân
0,625 × 2 = 1,25
0,25 × 2 = 0,5
0,5 × 2 = 1,0
0,625 = 0,101B
1.1.4. Các phép tốn số học trên số nhị phân
Các phép toàn số học trên số nhò phân chủ yếu vẫn giống các phép toán trên số
thập phân, ngoại trừ phép cộng và phép nhân thì đơn giản hơn.
Bảng phép cộng cho số nhò phân
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 nhớ 1 cho số hạng kế tiếp
Ví dụ: cộng 13
10
với 11
10
dưới dạng nhò phân
1111 ← các số nhớ
13
10
= 1101
11
10
= 1011
11000 =24
10
Bảng phép trừ cho số nhò phân
0 - 0 = 0
0 - 1 = 1 mượn 1 từ số hạng kế tiếp
1 - 0 = 1
1 - 1 = 0
Mượn1 từ 1 cột tương đương với việc trừ 1 tại cột đó
Ví dụ:
(a) 1 (b) 1111
11101 10000
- 10011
- 11
1010
← (mượn 1 từ cột thứ 3)
1101
← (mượn)
Bảng phép nhân cho số nhò phân
0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
9
1 x 1 = 1
Ví dụ: Nhân 13
10
với 11
10
ở dạng nhò phân
1101
1011
1101
1101
0000
1101
10001111 =143
10
Đối với máy tính, phép nhân được thực hiện bằng phương pháp cộng và dòch
trái:
- Thành phần đầu tiên của tổng sẽ chính là số bò nhân nếu như LSB của số
nhân là 1. Ngược lại, LSB của số nhân bằng 0 thì thành phần này bằng 0.
- Mỗi thành phần thứ i kế tiếp sẽ được tính tương tự với điều kiện là phải dòch
trái số bò nhân i bit.
- Kết quả cần tìm chính là tổng các thành phần nói trên.
Phép chia cho số nhò phân
Phép chia các số nhò phân cũng tương tự như đối với các số thập phân.
Ví dụ: 30/6
11110 110
110 101
011
000
110
110
0
Tương tự như đối với phép nhân, ta có thể dùng phép trừ và phép dòch phải cho
đến khi không thể thực hiện phép trừ được nữa.
1.1.5. Số có dấu - khơng dấu
Hệ thống số được chia làm 2 loại: không dấu và có dấu.
Trong hệ thống có dấu: để biểu thò số nhò phân có dấu thường sử dụng bit MSB
để chỉ dấu: bit 0 chỉ số dương, bit 1 chỉ số âm, các bit còn lại để chỉ độ lớn
Như vậy, nếu ta dùng 8 bit để biểu diễn thì sẽ thu được 256 tổ hợp ứng với các
giá trò 0 255 (số không dấu) hay –127 –0 +0 … +127 (số có dấu).
Tuy nhiên, không đơn giản là cứ thay đổi bit MSB bằng 1 để biểu diễn giá trò
âm, ví dụ như 01000001 (+65) thành 11000001 (-65), các phép tính số học sẽ
không còn đúng.
Giá trò âm được mô tả dưới dạng số bù 2.
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
10
Số bù 2 (2’s component)
Số bù 2 của một số nhò phân xác đònh bằng cách lấy đảo các bit rồi cộng thêm 1.
Ví dụ: Trong hệ thống có dấu 8bit
Số +65 biểu diễn là: 0100 0001
Số bù 2 của +65 là: 1011 1110 + 1 = 1011 1111. (– 65)
Nhưng nếu đổi ngược 1011 1111 sang thập phân sẽ không nhận được -65. Để
xác đònh giá trò tuyệt đối của một số nhò phân âm, thực hiện lại các bước trên
-65 10111111
đảo bit 01000000
cộng 1 1
+65 01000001
Thử lại bằng cách lấy tổng của +65 và –65, kết quả phải bằng 0
+65
-65
01000001
+10111111
00 (1)00000000
Trong phép cộng với số bù 2, ta bỏ qua bit nhớ cuối cùng bởi vì có một bit gán
cho bit dấu nên kết quả vẫn đúng
Khi biểu diễn theo số bù 2, nếu sử dụng 8 bit ta sẽ có các giá trò số thay đổi từ
-128 127.
Phép trừ thông qua số bù 2
Ngoài cách trừ như trên, ta cũng có thể thực hiện phép trừ thông qua số bù 2 của
số trừ: A-B=A+(-B)
VD: 0110 1101 0110 1101
- 0011 0001 → + 1100 1111
1 0011 1100
Số bù 1 Nhớ
1100 1110 + 1 = 1100 1111 (Số bù 2)
Kết quả 0011 1100, Bit MSB = 0 cho biết kết quả là số dương.
Xét khoảng thay đổi sau
+3 00000011
+2 00000010
+1 00000001
0 00000000
-1 11111111
-2 11111110
-3 11111101
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
11
Thấy rằng các bit 0 ở số nhò phân âm biểu thò giá trò thập phân của nó: tính giá
trò của các bit 0 theo vò trí giống như với bit 1, cộng các giá trò lại và cộng 1.
1.1.6. Hệ bát phân (hệ cơ số 8)
Hệ bát phân được kết hợp bởi 8 chữ số: 0, 1, 2, 3, 4, 5, 6, 7.
Vò trí của mỗi chữ số có trọng số như sau:
8
4
8
3
8
2
8
1
8
0
8
-1
8
-2
8
-3
8
-4
8
-5
¾ Đếm trong hệ bát phân
0 10 70
1 11 71
2 12 72
3
4
5
6 66 277
7 67 300
Với N chữ số bát phân, ta có thể đếm từ 0 đến 8
N
-1, 8
N
lần đếm khác nhau.
¾ Chuyển số bát phân sang số thập phân:
Ví dụ: (24.6)
8
= 2.8
1
+ 4.8
0
+ 6.8
-1
=(20.75)
10
¾ Chuyển số thập phân sang bát phân:
Ví dụ: đổi (266)
10
sang hệ bát phân
33
8
266
=
+ số dư 2
4
8
33
=
+ số dư 1
0
8
4
=
+ số dư 4
266
10
=
Ví dụ: Chuyển 0,3125 thành số bát phân
0,3125 × 8 = 2.5
0,5 × 8 = 4.0
( 0,3125 = 0,24
8
)
Đ
iểm bát phân
412
8
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
12
¾ Chuyển số bát phân sang số nhò phân:
Phương pháp: Biến đổi mỗi chữ số bát phân sang 3 bit nhò phân tương ứng
Số Octal 0 1 2 3 4 5 6 7
Số nhò phân
tương đương
000 001 010 011 100 101 110 111
Ví dụ: Biến đổi (472)
8
sang số nhò phân như sau:
4 7 2
↓ ↓ ↓
100 111 010
Vậy (472)
8
chuyển sang nhò phân là 100111010B.
¾ Chuyển số nhò phân sang số bát phân.
Phương pháp: nhóm từng 3 bit bắt đầu tại LSB, sau đó chuyển mỗi nhóm
này sang số bát phân tương ứng (theo bảng chuyển đổi ở trên).
Ví dụ: chuyển 100111010B sang số bát phân
1 0 0 1 1 1 0 1 0
↓ ↓ ↓
(4 7 2)
8
Trường hợp các số nhò phân không đủ thành 1 nhóm 3 bits, ta thêm 1 hoặc 2
số 0 về bên trái của MSB.
Ví dụ: chuyển 11010110 sang số bát phân
0 1 1 0 1 0 1 1 0
↓ ↓ ↓
(3 2 6)
8
¾ Lợi ích của hệ bát phân
Việc dễ dàng chuyển từ hệ bát phân sang nhò phân và ngược lại làm cho hệ
bát phân rất có lợi trong việc rút ngắn các số nhò phân lớn. Trong máy tính,
các số nhò phân này không phải luôn luôn biểu hiện một con số mà thường
biểu thò dưới dạng mã mang thông tin, ví dụ:
• dữ liệu bằng số thực
• các số tương ứng với các vò trí (đòa chỉ) trong bộ nhớ
• mã lệnh
• mã biểu thò số học và các đặc điểm khác
• một nóm các bit biểu hiện trạng thái của các thiết bò trong và ngoài
mày tính
Khi giải quyết một lượng lớn các số nhò phân với nhiều bit, thường dùng các
số dưới dạng bát phân hơn là nhò phân để tăng độ tiện lợi, mặc dù các mạch
số và các hệ thống số làm việc hoàn toàn trên số nhò phân.
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
13
Ví dụ: Chuyển số 117
10
sang hệ bát phân rồi chuyển sang hệ nhò phân
Giải 22
8
177
=
+ số dư 1
2
8
22
=
+ số dư 6
0
8
2
=
+ số dư 2
Vậy (177)
10
=(261)
8
= (10110001)
2
Phương pháp chuyển số thập phân thành số nhò phân này thường nhanh hơn
việc chuyển thẳng từ thập phân sang nhò phân, đặc biệt đối với các số lớn.
Cũng như vậy đối với việc chuyển ngược lại từ nhò phân sang thập phân
bằng cách chuyển sang số bát phân
1.1.7. Hệ thập lục phân (hệ cơ số 16)
Trong hệ thống này, ta dùng các số 0 9 và các kí tự A F để biểu diễn cho một
giá trò số (tương ứng với 10 đến 15 trong hệ 10). Thông thường, ta dùng chữ H ở
cuối để xác đònh đó là số thập lục phân.
Hệ thập lục phân Hệ thập phân Hệ nhò phân
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
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
¾ Đếm trong hệ thập lục phân (hex)
Khi đếm trong hệ thập lục phân mỗi chữ số tăng từ 0 đến F sau đó về 0 và
chữ số có trọng số lớn hơn kế tiếp sẽ tăng lên 1.
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
14
0 10 20
9 19 FF
A 1A 100
B
C
D
E 1E 6FF
F 1F 700
¾ Chuyển số hex sang thập phân
Ví dụ: 356
16
= 3.16
2
+ 5.16
1
+ 6.16
0
= 854
10
¾ Chuyển số hex sang nhò phân
Phương pháp: mỗi chữ số hex được biến đổi thành số nhò phân 4 bit tương
ứng.
Ví dụ: 9F2
16
= 9 F 2
↓ ↓ ↓
1001 1111 0010
¾ Chuyển đổi số nhò phân sang số hex
Phương pháp: các bit nhò phân được nhóm vào nhóm 4 bit từ LSB, mỗi
nhóm 4 bit được biến đổi sang số hex tương ứng. Nếu số bit không đủ 4, thì
cộng thêm bit 0 vào MSB.
Ví dụ: 1110100110
2
= 0 0 1 1 1 0 1 0 0 1 1 0 = 3A6
16
3 A 6
Ví dụ: Chuyển (378)
10
sang số hex rồi chuyển sang số nhò phân, nhận xét
Ví dụ: Chuyển B2F
16
sang bát phân
1.2. CÁC BỘ MÃ HĨA SỐ HỆ MƯỜI THƠNG DỤNG
Khi các số, mẫu tự hoặc các từ words được biểu thò dưới dạng một nhóm các ký
hiệu khác, ta nói rằng chúng được mã hóa và nhóm ký tự đó được gọi là một
mã.
Một trong những mã thông dụng nhất là mã Morse, chúng bao gồm các chấm và
gạch để biểu hiện các mẫu tự hay các chữ cái.
Bất cứ số thập phân nào cũng có thể được mô tả bằng số nhò phân tương ứng,
một nhóm các số nhò phân 0 và 1 có thể được xem là một mã cho số thập phân.
Khi một số thập phân được mô tả bằng số nhò phân tương ứng với nó, người ta
gọi là mã nhò phân trực tiếp (straight binary code)
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
15
Tất cả các hệ thống số dùng một số dạng các số nhò phân cho việc thực thi bên
trong, nhưng các từ bên ngoài thì thường là thập phân, nghóa là có một sự biến
đổi thường xuyên từ thập phân sang nhò phân, sự biến đổi từ thập phân sang nhò
phân có thể chiếm một khoảng thời gian lâu và phức tạp đối với một số lớn. Vì
lý do đó, việc mã hóa các số thập phân bằng cách kết hợp một vài chức năng
của cả hệ thống thập phân và nhò phân được sử dụng trong các tình huống.
1.2.1. Mã BCD (Binary-Coded-Decimal Code)
Nếu mỗi chữ số của số thập phân được mô tả bằng số nhò phân tương ứng với
nó, kết quả ta được 1 mã gọi là mã BCD, vì chữ số thập phân lớn nhất là 9, cần
4 bit để mã hóa.
Các số 8,4,2,1 được gọi là trọng số của mã và được gọi là mã BCD 8-4-2-1.
Đôi khi trọng số 8-4-2-1 tỏ ra không thuận tiện trong tính toán, một số trọng số
khác cũng được sử dụng như 2-4-2-1, 5-4-2-1, 7-4-2-1…
MÃ BCD
Trọng số Trọng số Trọng số Trọng số
Thập
phân
8 4 2 1 7 4 2 1 2 4 2 1 5 1 2 1
0
1
2
3
4
5
6
7
8
9
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
Lưu ý rằng các loại mã 5-1-2-1 và 2-4-2-1 là không duy nhất trong khi mã 8-4-
2-1 và 7-4-2-1 lại duy nhất
Ví dụ: Số thập phân 874 chuyển sang tương đương nhò phân như sau:
8 7 3 (thập phân)
↓ ↓ ↓
1000 0111 0011 (BCD 8-4-2-1)
1011 1010 0011 (BCD 5-1-2-1)
hoặc 1011 1101 0110 (BCD 5-1-2-1)
Một lần nữa, mỗi chữ số thập phân được biến đổi trực tiếp sang số nhò phân
tương ứng, lưu ý rằng 4 bit luôn được dùng cho mỗi chữ số thập phân
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
16
Trong bài giảng này lấy mã BCD 8-4-2-1 làm ví du. Mã BCD biểu thò mỗi chữ
số của số thập phân bằng số nhò phân 4 bit, sử dụng các số nhò phân 4 bit từ
0000 đến 1001, không sử dụng các số 1010, 1011, 1100, 1101, 1110 và 1111.
Ví dụ: Biến đổi 0110100000111001 (BCD 8-4-2-1) sang giá trò thập phân
Giải
Chia số BCD thành các nhóm 4 bit và biến đổi sang thập phân
0110 1000 0011 1001 = 6839
So sánh BCD và nhò phân. Một điều quan trọng là mã BCD không giống như
mã nhò phân trực tiếp. Mã nhò phân trực tiếp biến đổi số thập phân sang nhò
phân trong khi mã BCD biến đổi mỗi chữ số trong số thập phân sang nhò phân.
Xét ví dụ biến đổi 137 sang mã nhò phân trực tiếp và sang BCD 8-4-2-1 như sau:
137
10
= 10001001
2
(nhò phân)
137
10
= 0001 0011 0111 (BCD 8-4-2-1)
Mã BCD cần 12 bit trong khi mã nhò phân trực tiếp chỉ cần 8 bit để biểu thò số
137. Mã BCD cần nhiều bit hơn là bởi vì BCD không dùng hết các khả năng của
các nhóm 4 bit và vì vậy có phần nào đó không hiệu quả.
Ưu điểm chính của BCD là dễ dàng chuyển sang thập phân. Chỉ phải nhớ các
nhóm mã 4bit cho các số thập phân từ 0 đến 9. Sự dễ dàng chuyển đổi này đặc
biệt quan trọng theo quan điểm về phần cứng vì trong một hệ thống số, nó là
các mạch logic để tạo nên sự chuyển đổi sang và từ thập phân
1.2.2. Các phép tốn số học với mã BCD
Cộng BCD
Cộng hai số BCD có điểm khác so với cộng hai số nhò phân. Khi tổng của mỗi
số hạng BCD ≤ 9 thì tổng đó là kết quả cuối cùng
Ví dụ,
01010011 (53)
00100101 (25)
01111000 (78)
Khi tổng hai số nhò phân
9≥
thì tổng phải được cộng thêm 6 và nhớ 1 lên hàng
BCD có nghóa cao hơn
Ví dụ,
0001 0111 (17)
0010 0101 (25)
0011 1100 Kết quả 9≥
0110 (6)
0100 0010 (42)
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
17
Trừ BCD
Giống quy luật trừ số nhò phân nhiều bit, nếu số bò trừ nhỏ hơn số trừ thì phải
mượn 1 ở hàng có nghóa lớn hơn (giống trừ thập phân)
Biểu diễn số BCD âm
Giống hệ nhò phân, để biểu diễn số âm trong hệ nhò phân thường dùng số bù 2,
để biểu diễn số BCD âm thường dùng số bù 10.
Số bù 10 bằng số bù 9 cộng 1
Bit tận cùng bên trái là bit dấu: 1 cho số âm và 0 cho số dương
Ví dụ,
1.2.3. Mã q 3 (excess-3code)
Mã quá 3 được hình thành bằng cách cộng thêm 3 đơn vò vào mã BCD 8421.
Ví dụ: biến đổi 48 sang mã quá 3
4 8
+ 3 + 3 Cộng 3 cho mỗi chữ số
7 11
↓ ↓
0111 1011 Chuyển sang mã nhò phân 4 bit
Bảng liệt kê mã BCD và mã quá 3 tương ứng với các chữ số thập phân.
Thập phân BCD Mã quá 3
0
1
2
3
4
5
6
7
8
9
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
0101 0101 (55) 0100 1111 Mượn 1
0001 1000 (18)
⇒
0001 1000
0011 0111 (37)
+ 342 0 342 Số dương
1 657 Số bù 9 của 342
+ 1
- 342 1 658 Số bù 10 của 342
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
18
1.2.4. Mã Gray
Mã Gray nằm trong nhóm mã thay đổi cực tiểu minimun-change codes, ở đó chỉ
1 bit trong nhóm mã thay đổi ở khi đi từ bước này qua bước khác.
Mã Gray là mã không có trọng số, nghóa là mọi vò trí của bit trong nhóm mã
không được gán trọng số nào. Vì vậy, mã Gray không phù hợp với các biểu thức
số học nhưng phù hợp với các thiết bò ứng dụng vào/ra & một số dạng biến đổi
analog - digital
Bảng chuyển đổi mã Gray từ số thập phân (0 đến 15) với mã nhò phân trực tiếp
Thập phân Nhò phân Mã Gray Thập phân Nhò phân Mã Gray
0
1
2
3
4
5
6
7
0000
0001
0010
0011
0100
0101
0110
0111
0000
0001
0011
0010
0110
0111
0101
0100
8
9
10
11
12
13
14
15
1000
1001
1010
1011
1100
1101
1110
1111
1100
1101
1111
1110
1010
1011
1001
1000
1.2.5. Mã Johnson
Mã này sử dụng năm chữ số nhò phân để biểu diễn các chữ số hệ mười.
Phương pháp: Khi chuyển sang số tiếp theo mã sẽ thay chữ số 0 bằng chữ số
1, bắt đầu từ phái sang trái, cho đến khi đạt 11111 thì sẽ bắt đầu thay thế dần
chữ số 1 bằng chữ số 0 và cũng theo chiều từ phải sang trái
Mã Johnson Hệ 10
J
4
J
3
J
2
J
1
J
0
0
1
2
3
4
5
6
7
8
9
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
Ngoài ra còn dùng các loại mã có chữ số lớn hơn như 8 hoặc 10 chữ số, nhược
điểm của các loại mã này là độ dài từ mã lớn nên chiếm nhiều thời gian trong
kênh thông tin nhưng ưu điểm là có thể phát hiện sai và trong nhiều trường hợp
còn có thể sửa sai, vì vậy thường gọi là mã chống nhiễu (nội dung này nằm
trong lý thuyết thông tin)
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
19
1.2.6. Các mã Alphanumeric (mã theo chữ cái và con số)
Ngoài các dữ liệu số, một máy tính phải có khả năng xử lý các công tin không
số. Nói cách khác, một máy tính phải nhận ra các mã biểu thò các ký tự của chữ
cái, các dấu chấm, và các ký tự đặc biệt khác. Các mã này được gọi là mã
alphanumeric. Một mã alphanumeric hoàn tất bao gồm 26 chữ cái thường, 26
chữ cái hoa, 10 chữ số, 7 chấm câu, và từ 20 đến 40 ký tự khác, như +, /, #, %,
*,v.v…. Có thể nói rằng mã alphanumeric biểu thò tất cả các ký tự khác nhau và
các hàm tùy thuộc vào chuẩn bàn phím của máy tính hay máy đánh chữ
Mã ASCII. Mã alphanumeric dùng rộng rãi hiện nay là mã ASCII (American
Standard Code for Information Interchange), sử dụng hầu hết trong các máy vi
tính, trong các thế hệ máy tính lớn (mainframe). Mã ASCII là một mã 7 bit và vì
vậy nó có 2
7
= 128 nhóm mã. Điều này thì đủ để biểu thò tất cả các ký tự bàn
phím chuẩn cũng như các hàm điều khiển như (RETURN) và (LINEFEED)
Ký tự ASCII Octal Hex Ký tự ASCII Octal Hex
A
B
C
D
E
F
G
H
I
J
K
L
100 0001
100 0010
100 0011
100 0100
100 0101
100 0110
100 0111
100 1000
100 1001
100 1010
100 1011
100 1100
101
102
103
104
105
106
107
110
111
112
113
114
41
42
43
44
45
46
47
48
49
4A
4B
4C
Y
Z
0
1
2
3
4
5
6
7
8
9
101 1001
101 1010
011 0000
011 0001
011 0010
011 0011
011 0100
011 0101
011 0110
011 0111
011 1000
011 1001
131
132
060
061
062
063
064
065
066
067
070
071
59
5A
30
31
32
33
34
35
36
37
38
39
M
N
O
P
Q
R
S
T
U
V
W
X
100 1101
100 1110
100 1111
101 0000
101 0001
101 0010
101 0011
101 0100
101 0101
101 0110
101 0111
101 1000
115
116
117
120
121
122
123
124
125
126
127
130
4D
4E
4F
50
51
52
53
54
55
56
57
58
Blank
.
(
+
$
*
)
-
/
=
RETURN
LINEFEED
010 0000
010 1110
010 1000
010 1011
010 0100
010 1010
010 1001
010 1101
0101111
010 1100
011 1101
000 1101
0001010
040
056
050
053
044
052
051
055
057
054
075
015
012
20
2E
28
2B
24
2A
29
2D
2F
2C
3D
0D
0A
Ví dụ: Thông điệp được mã hóa trong ASCII như sau
1001000 1000101 1001100 1010000
Giải Kết quả theo HEX là 48 45 4C 50
Theo bảng ASCII, biến đổi HEX sang ký tự là H E L P
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
20
Mã ASCII thường dùng trong các bộ truyền các thông tin alphanumeric giữa
một máy tính và các thiết bò vào ra như thiết bò video hay printer. Máy tính cũng
sử dụng nó để lưu trữ các thông tin như các dạng lệnh.
Để có thể biểu diễn thêm nhiều ký tự khác (ký hiệu không phải là chữ La Ting
như α, β, χ, δ…) mã ASCII được thêm 1bit nữa để có mã ASCII 8bit diễn tả được
256 ký tự, đây là mã ASCII mở rộng (Extended ASCII)
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
21
Bài tập chương 1
1.1. Đổi các số nhị phân sau sang số thập phân:
a. 10110
b. 10001101
c. 100100001001
d. 1111010111
e. 10111111
1.2. Đổi các giá trị thập phân sau sang nhị phân:
a. 37
b. 14
c. 189
d. 205
e. 2313
f. 511
1.3. Giá trị thập phân lớn nhất của số nhị phân 8 bit là bao nhiêu,16 bit là bao
nhiêu
1.4. Đổi các số bát phân sang số thập phân tương ứng:
a. 743
b. 36
c. 3777
d. 257
e. 1204
1.5. Đổi các số thập phân sau sang số bát phân:
a. 59
b. 372
c. 919
d. 65,535
e. 255
1.6. Đổi các số bát phân ở 1.4 thành số nhị phân.
1.7. Đổi các số nhị phân ở 1.1 thành số bát phân.
1.8. Hãy liệt kê các số bát phân liên tục từ 1658 đến 2008.
1.9.Khi các số thập phân lớn, để đổi sang nhị phân, trước tiên ta đổi sang bát
phân, sau đó đổi số bát phân thành số nhị phân. Hãy dùng cách này đổi số
231310 thành số nhị phân và so sánh với cách đổi dùng ở bài 1.2.
1.10. Đổi các giá trị hex sau thành số thập phân:
a. 92
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
22
b. 1A6
c. 37FD
e. 2C0
f. 7FF
1.11. Đổi các giá trị thập phân sau sang Hex:
a. 75
b. 314
c. 2048
d. 25,619
e. 4095
1.12. Đổi các giá trị nhị phân ở bài 1.1sang thập lục phân.
1.13. Đổi các giá trị Hex ở bài 1.10 sang nhị phân.
1.14.Trong máy vi tính, địa chỉ các vị trí ô nhớ được biểu diễn ở dạng thập lục
phân. Địa chỉ này là những số liên tục mà nó nhận dạng mỗi mạch nhớ
a. Một máy tính cụ thể có thể chứa 1 số 8 bit trong mỗi vị trí nhớ. Nếu các
địa chỉ ô nhớ nằm trong khoảng từ 000016 đến FFFF16, có bao nhiêu vị
trí nhớ?
b. Một bộ vi xử lý có 4096 vị trí nhớ thì khoảng địa chỉ Hex mà bộ vi xử lý
này dùng là gì ?.
1.15. Hãy liệt kê những số hex trình tự từ 280 đến 2A0.
1.16. Hãy mã hóa các số thập phân sau thành số BCD:
a. 47
b. 962
c. 187
d. 42,689.627
e. 1204
1.17. Cần bao nhiêu bit để thể hiện các số thập phân trong khoảng từ 0 đến 999
dùng mã nhị phân chuẩn, mã BCD?
1.18. Đổi những số BCD sau thành số thập phân:
a. 10010110101010010
b. 000110000100
c. 0111011101110101
d. 010010010010
1.19. Hãy thể hiện phát biểu sau "X = 25/Y" bằng mã ASCII, có kèm theo một bit
chẵn lẻ.
1.20. Hãy thêm bit chẵn lẻ vào mã ASCII ở bài 1.19 và đưa kết quả về số Hex.
1.21. Các nhóm mã dưới đây được truyền đi, hãy thêm bit chẵn lẻ cho mỗi nhóm:
Bài Giảng Kỹ Thuật Số Chương 1
GV: Nguyễn Trọng Hải Trang
23
a. 10110110
b. 00101000
c. 11110111
1.22. Hãy đổi số thập phân sau thành mã BCD, sau đó đổi sang số BCD âm:
a. 74
b. 38
c. 165
d. 9201
1.23. Trong hệ thống số, số thập phân từ 000 đến 999 được thể hiện ở dạng mã
BCD. Một bit chẵn lẻ lẻ cũng được đích kèm ở cuối mỗi nhóm mã. Hãy kiểm tra
các nhóm mã bên dưới và giả sử rằng mỗi một mã được truyền từ vị trí này đến vị
trí khác. Một vài nhóm có chứa lỗi. Giả sử không quá 2 lỗi trong mỗi nhóm. Hãy
xác định nhóm mã nào có 1 lỗi đơn và nhóm mã nào có 1 lỗi kép:
a. 100101011000
b. 0100011101100
c. 011110000011
d. 1000011000101
1.24. Thực hiện các sự chuyển đổi dưới đây. Trong số đó, có thể thử 1 cách tốt
nhất trong nhiều cách đã khảo sát.
a. (1417)
10
= (……………………….…… )
2
b. (-255)
10
= (………………………………)
2
c. (1110101000100111)2 =(……………………………)
10
e. (2497)
10
= (…………………………… )
8
g. (235)
8
= (……………………………)
10
i. (7A9)
16
= (…………………………….)
10
k. (1600,123)
10
= (………………………………………)
16
m. (865)
10
=( …………………………………….)
BCD
n. (100101000111)
BCD
= (……………………………….)
10
1.25. Thể hiện giá trị thập phân 37 theo những cách sau:
a. Biến đổi thẳng nhị phân
b. BCD
c. ASCII
d. Bát phân
e. Hex
Bài Giảng Kỹ Thuật Số Chương 2
GV: Nguyễn Trọng Hải Trang
24
CHƯƠNG 2.
ĐẠI SỐ BOOLEAN VÀ CÁC CỔNG LOGIC
2.1. KHÁI NIỆM VỀ LOGIC HAI TRẠNG THÁI
Phép toán cơ bản trong thiết kế logic các hệ thống số là đại số Boolean. Đại số
Boolean có nhiều ứng dụng khác nhau bao gồm lý thuyết tập hợp và logic toán,
vì tất cả các phần tử chuyển mạch về cơ bản đều là các phần tử hai trạng thái
(như diode, transistor), cho nên sẽ tập trung khảo sát trường hợp đại số Boolean
với sự thay đổi giả sử chỉ ở 1 trong 2 giá trò. Đại số Boolean sử dụng 2 giá trò
này xem như đại số về chuyển mạch.
Phần này sử dụng các biến Boolean như X hoặc Y… để biểu diễn ngõ vào hoặc
ngõ ra của mạch chuyển mạch, mỗi biến có thể lấy 1 trong hai giá trò. Ký hiệu
“0” và “1” được dùng để đại diện cho hai giá trò khác nhau này. Vì vậy, nếu X
là biến chuyển mạch hay biến Boolean thì hoặc X=0, hoặc X=1
Mặc dù ký hiệu “0” và “1” giống như số nhò phân, nhưng không phải như vậy.
Đây chỉ là 2 ký tự đại diện cho 2 giá trò của biến chuyển mạch và được xem là
mức logic, một số vò dụ về các hiện tượng mà mức logic đại diện như sau
LOGIC 0 LOGIC 1
Sai
Tắt
Mức điện áp thấp
Không
Mở mạch
Đúng
Mở
Mức điện áp cao
Có
Đóng mạch
Vì chỉ có hai giá trò, nên đại số Boolean tương đối dễ dàng hơn so với đại số
thông thường. Ở đại số Boolean, không có phân số, thập phân, căn bậc hai, căn
bậc ba, logarit, số ảo, v.v. Đại số Boolean chỉ có 3 phép toán cơ bản: cộng (OR),
nhân (AND) và lấy bù (NOT).
2.2. BẢNG SỰ THẬT
Bảng sự thật (Truth Table) mô tả các đáp ứng ngõ ra của mạch logic ứng với
các tổ hợp khác nhau tại ngõ vào.
Ví dụ
Mạng
chuyển
mạch
A
B
X
Mạng
chuyển
mạch
A
B
X
Mạng
chuyển
mạch
A
B
X
C
C
D
Bài Giảng Kỹ Thuật Số Chương 2
GV: Nguyễn Trọng Hải Trang
25
Các bảng sự thật tiêu biểu ứng với các mạng chuyển mạch trên như sau:
Ở mỗi bảng sự thật, các tổ hợp mức logic 0 và 1 đối với ngõ vào (A, B, C, D)
được thể hiện bên trái, mức logic ở ngõ ra X được thể hiện bên phải
Lưu ý, nếu có 2 ngõ vào thì có 4 khả năng xảy ra, tương tự 8 khả năng cho 3 ngõ
vào và 16 khả năng cho 4 ngõ vào. Sẽ có 2
N
khả năng xảy ra đối với N ngõ vào.
Tất cả các tổ hợp ngõ vào được thể hiện theo chuỗi đếm nhò phân.
2.3. CÁC PHÉP TỐN CƠ BẢN
2.3.1. Phép tốn OR và cổng OR
Gọi A và B là 2 biến logic độc lập. Khi A và B kết hợp qua phép toán OR, kết
quả x được mô tả như sau:
X = A + B
Trong biểu thức này, dấu “+” không có nghóa là phép cộng thuần túy. Nó là
phép toán OR, kết quả của phép toán OR được cho trong bảng sự thật sau:
Kết luận
• Phép toán OR sẽ có kết quả bằng 1 nếu một hay nhiều biến ngõ vào
bằng 1
• Cổng OR chỉ có một ngõ ra và có thể có nhiều hơn hai ngõ vào
Ngõ vào Ngõ ra
↓ ↓ ↓
A B X
0
0
1
1
0
1
0
1
?
?
?
?
A B C X
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
?
?
?
?
?
?
?
?
A B C D X
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Cổng OR
A
B
Y=A+B
A B X=A+B
0
0
1
1
0
1
0
1
0
1
1
1
Bài Giảng Kỹ Thuật Số Chương 2
Trang
23
Ký hiệu và bảng sự thật cho cổng OR 3 ngõ vào
Ví dụ
Xác đònh dạng sóng ngõ ra cổng OR khi ngõ vào A, B thay đổi theo giản đồ sau:
2.3.2. Phép tốn AND và cổng AND
Nếu hai biến logic A và B được kết hợp qua phép AND, kết quả là:
X= A.B
Bảng sự thật của phép nhân 2 biến A và B như sau:
Kết luận
• Phép toán AND sẽ có kết quả bằng 0 nếu một hay nhiều biến ngõ vào
bằng 0
• Cổng AND chỉ có một ngõ ra và có thể có nhiều hơn hai ngõ vào
Ví dụ AND 3 ngõ vào có bảng sự thật như sau
A
B
C
X=A+B+C
Cổng AND
B
A
X = AB
Cổng AND
B
A
X = ABC
C
A B C X = ABC
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
A B C X = A + B + C
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
A B X=A.B
0
0
1
1
0
1
0
1
0
0
0
1
1
0
B
A
Out
B
A
Bài Giảng Kỹ Thuật Số Chương 2
Trang
24
Ví dụ
Xác đònh dạng sóng ngõ ra của cổng AND ứng với các ngõ vào như sau
`
Trong ví dụ này thấy rằng, ngõ ra x sẽ bằng với ngõ vào A khi B ở mức logic 1.
Vì vậy ta có thể xem ngõ vào B như ngõ vào điều khiển, nó cho phép dạng
sóng ở ngõ vào A xuất hiện ở ngõ ra hay không. Trong trường hợp này cổng
AND được dùng như một mạch cho phép, và đây là ứng dụng rất quan trọng của
cổng AND và sẽ được khảo sát sau.
2.3.3. Phép tốn NOT và cổng NOT
Nếu biến A được đưa qua phép toán NOT, kết quả x sẽ là:
X=
A
Ta có 01= và 10 = , bảng sự thật cho phép toán NOT như sau:
A
X=
A
0
1
1
0
Cổng NOT chỉ có một ngõ vào và một ngõ ra
2.4. MƠ TẢ CÁC MẠCH LOGIC THEO PHƯƠNG PHÁP ĐẠI SỐ
Bất cứ một mạch logic nào cũng có thể được mô tả bằng cách sử dụng các phép
toán Boolean đã đề cập ở trên (cổng OR, AND và NOT là những khối cơ bản
trong một hệ thống số).
Ví dụ, xét mạch sau
Mạch có 3 ngõ vào A, B và C và một ngõ ra x. Sử dụng các biểu thức Boolean
cho mỗi cổng ta xác đònh được biểu thức ngõ ra x = AB + C.
Ví dụ
B
A
B
A
X = AB
A.B
B
A
C
X = A.B + C
A+B
B
A
C
X = (A+B).C
Cổng NOT
X=A
A
Bài Giảng Kỹ Thuật Số Chương 2
Trang
25
Ví dụ xác đònh hàm ngõ ra của mạch sau
2.5. THỰC HIỆN CÁC MẠCH LOGIC TỪ BIỂU THỨC BOOLEAN
Ví dụ thực hiện biểu thức sau: y = AC+BC+ABC
Ví dụ vẽ sơ đồ mạch thực hiện biểu thức sau: x= AB+BC
Ví dụ vẽ sơ đồ mạch thực hiện biểu thức
(
)
x = ABC A+D
sử dụng các cổng có số
ngõ vào nhỏ hơn 3
2.6. CỔNG NOR VÀ CỔNG NAND
Cổng NAND và cổng NOR được dùng rất rộng rãi trong các mạch số. Thực sự
các cổng này đều được kết hợp từ các phép tóan cơ bản AND, OR và NOT.
2.6.1. Cổng NOR
Cổng NOR họat động giống như hai cổng OR và NOT mắc nối tiếp như hình vẽ
và biểu thức ngõ ra là x=
A
+B , bảng sự thật như sau:
OR NOR
A B A+B
A
+B
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
Ngõ ra cổng NOR là đảo với ngõ ra cổng OR
AC
C
B
BC
ABC
y=AC+BC+ABC
A
B
C
C
B
A
Ký hiệu đảo
X=
A
+B
X=
A
+B
B
A
A
B
B
A
B
D
C
A
(a)
(b)