Nguyễn Đức Toàn
toan82vn@gmail.com
01212722213
1
I. Các hệ thống số đếm:
2
Chương 1: HỆ THỐNG SỐ ĐẾM - SỐ NHỊ PHÂN
1. Các khái niệm:
- Cơ số (r - radix):
- Trọng số (weight):
- Giá trị (value):
là số lượng ký tự chữ số (ký số - digit)
sử dụng để biểu diễn trong hệ thống số đếm
đại lượng biểu diễn cho vị trí của 1 con số trong chuỗi số.
Trọng số = Cơ số Vị trí
tính bằng tổng theo trọng số
Giá trị = ? (Ký số x Trọng số)
400 + 0 + 7 + 0.6 + 0.02 + 0.005 = 407.625
3
a. Số thập phân (Decimal): Cơ số r = 10
b. Số nhị phân (Binary): Cơ số r = 2
4 + 0 + 1 + 0 + 0.25 + 0.125 = 5.375
c. Số thập lục phân (Hexadecimal): Cơ số r = 16
4
1280 + 160 + 0 + 0.25 + 0.0508 + 0.0002 = 1440.301
5
2. Chuyển đổi cơ số:
a. Từ thập phân sang nhị phân
8 . 625
8 : 2 = 4 dư 0 (LSB)
4 : 2 = 2 dư 0
2 : 2 = 1 dư 0
1 : 2 = 0 dư 1
0.625 x 2 = 1.25 phần nguyên 1 (MSB)
0.25 x 2 = 0.5 phần nguyên 0
0.5 x 2 = 1.0 phần nguyên 1
1 0 0 0 .
.1 0 1 B
6
b. Từ thập phân sang thập lục phân:
1480. 4296875
1480 : 16 = 92 dư 8 (LSB)
92 : 16 = 5 dư 12
5 : 16 = 0 dư 5
0.4296875 x 16 = 6.875 phần nguyên 6 (MSB)
0.875 x 16 = 14.0 phần nguyên 14
5 C 8 .
. 6 E H
7
d. Từ thập lục phân sang nhị phân:
c. Từ nhị phân sang thập lục phân:
11 1011 0101 1101 . 0110 101 B
00
0
. 6 A H
2 C 9 . E 8 H
0010 1100 1001 . 1110 1000 B
3 B 5 D .
8
II. Số nhị phân (Binary):
1.Các tính chất của số nhị phân
- Số nhị phân n bit có 2n giá trị từ 0 đến 2n - 1
- Số nhị phân có giá trị 2n-1: 1 . . . 1 (n bit 1)
và giá trị 2n: 1 0 . . ... 0 (n bit 0)
- Số nhị phân có giá trị lẻ là số có LSB = 1;
ngược lại giá trị chẵn là số có LSB = 0
- Các bội số của bit:
1 B (Byte) = 8 bit
1 KB = 210 B = 1024 B
1 MB = 210 KB = 220 B
1 GB = 210 MB
9
2. Các phép toán số học trên số nhị phân:
a. Phép cộng:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 nhớ 1
0
1 0 1 1 1
1 0 1
0
1
1
1
1
1
1
b. Phép trừ:
0 - 0 = 0
0 - 1 = 1 mượn 1
1 - 0 = 1
1 - 1 = 0
1
1 1 0 1 0
1 1 1
1
0
0
1
-1
-1
-1
10
c. Phép nhân:
1 0 1 1
1 0 0 1
1 0 1 1
0 0 0 0
0 0 0 0
1 0 1 1
1 1 0 0 0 1 1
d. Phép chia:
1 0 0 1 0 0 0 1
1 0 1 1
1 0 1 1
1 1 1
1

0
1
1 0 1 1
1 1



0
0



1
1
1 0 1 1
1 0
3. Mã nhị phân:
11
Từ mã:
là các tổ hợp nhị phân được sử dụng trong loại mã nhị phân
a. Mã nhị phân cho số thập phân (BCD - Binary Coded Decimal)
12
b. Mã Gray:
là mã nhị phân mà 2 giá trị liên tiếp nhau
có tổ hợp bit biểu diễn chỉ khác nhau 1 bit
Đổi từ Binary sang Gray
1 0 1 1 0
1
1
1
0
1
1
0
1
1
Đổi từ Gray sang Binary
1 1 0 0 1
1
1
0
0
0
0
0
0
1
Gray:
Gray:
13
c. Mã LED 7 đoạn:
d. Mã 1 trong n:
là mã nhị phân n bit có mỗi từ mã chỉ có 1 bit là 1 (hoặc 0) và n-1 bit còn lại là 0 (hoặc 1)
Mã 1 trong 4:
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
hoặc
14
d. Mã ký tự ASCII:
15
III. Số nhị phân có dấu :
1. Biểu diễn số có dấu:
a. Số có dấu theo biên độ (Signed_Magnitude):
- Bit MSB là bit dấu: 0 là số dương và 1 là số âm,
các bit còn lại biểu diễn giá trị độ lớn
+ 13 :
0 1 1 0 1
- 13 :
1 1 1 0 1
- Phạm vi biểu diễn:
- (2n-1 - 1) � + (2n-1 - 1)
16
b. Số bù_1 (1`s Complement):
Số bù_1 của 1 số nhị phân N có chiều dài n bit
Bù_1 (1 0 0 1)
= 24 - 1 - 1 0 0 1
= 1 1 1 1 - 1 0 0 1
= 0 1 1 0
Có thể lấy Bù_1 của 1 số nhị phân bằng cách lấy đảo từng bit của nó (0 thành 1 và 1 thành 0)
- Phạm vi biểu diễn
- (2n-1 - 1) � + (2n-1 - 1)
- Biểu diễn số có dấu bù_1:
* Số có giá trị dương:
bit dấu = 0, các bit còn lại biểu diễn độ lớn
* Số có giá trị âm:
lấy bù_1 của số dương có cùng độ lớn
Bù_1 (N) = 2n - 1 - N
17
c. Số bù_2 (2`s Complement):
Số bù_2 của 1 số nhị phân N có chiều dài n bit cũng có n bit
Bù_2 (N) = 2n - N = Bù_1 (N) + 1
Bù_2 (1 0 0 1)
= 24 - 1 0 0 1
= 1 0 0 0 0 - 1 0 0 1
= 0 1 1 1
hoặc Bù_2 (1 0 0 1)
= Bù_1 (1 0 0 1) + 1
= 0 1 1 0 + 1
= 0 1 1 1
18
Phạm vi biểu diễn số nhị phân có dấu n bit
- Biểu diễn số có dấu bù_2:
* Số có giá trị dương:
bit dấu = 0, các bit còn lại biểu diễn độ lớn
* Số có giá trị âm:
lấy bù_2 của số dương có cùng độ lớn
- (2n-1 ) � + (2n-1 - 1)
19
Để tìm được giá trị của số âm:
ta lấy bù_2 của nó; sẽ nhận được số dương có cùng biên độ
Số âm 1 1 0 0 0 1 có giá trị : ...
Bù_2 (1 1 0 0 0 1) = 0 0 1 1 1 1 : + 15
- 15
Mở rộng chiều dài bit số có dấu:
số dương thêm các bit 0 và số âm thêm các bit 1 vào trước
- Lấy bù_2 hai lần một số thì bằng chính số đó
- Giá trị -1 được biểu diễn là 1 .. 11 (n bit 1)
- Giá trị -2n được biểu diễn là 1 0 0 .... 0 0 (n bit 0)
- 32 = - 25 : 1 0 0 0 0 0
- 3 : 1 0 1 = 1 1 1 0 1
20
2. Các phép toán cộng trừ số có dấu:
- Thực hiện trên toán hạng có cùng chiều dài bit,
và kết quả cũng có cùng số bit
- Kết quả đúng nếu nằm trong phạm vi biểu diễn số có dấu.
(nếu kết quả sai thì cần mở rộng chiều dài bit)
- Thực hiện giống như số không dấu.
- 6
+ 3
: 1 0 1 0
: 0 0 1 1
+
1 1 0 1
- 3 :
- 2
- 5
: 1 1 1 0
: 1 0 1 1
+
1 0 0 1
- 7 :
+ 4
+ 5
: 0 1 0 0
: 0 1 0 1
+
1 0 0 1
- 7 :
(Kq sai)
0 0 1 0 0
0 0 1 0 1
0 1 0 0 1
(Kq đúng)
: + 9
21
- 7
+ 5
: 1 0 0 1
: 0 1 0 1
-
0 1 0 0
+ 4 :
(Kq sai)
1 1 0 0 1
0 0 1 0 1
1 0 1 0 0
(Kq đúng)
: - 12
- 6
- 2
: 1 0 1 0
: 1 1 1 0
-
1 1 0 0
- 4 :
+ 2
- 5
: 0 0 1 0
: 1 0 1 1
-
0 1 1 1
+ 7 :
22
Trừ với số bù_2:
6
13
: 0 1 1 0
: 1 1 0 1
-
1 0 0 1
- 7 :
bù_2:
0 1 1 0
0 0 1 1
+
* Trừ với số không có dấu
* Trừ với số có dấu
- 6
- 3
: 1 0 1 0
: 1 1 0 1
-
1 1 0 1
- 3 :
bù_2:
1 0 1 0
0 0 1 1
+
A - B = A + Bù_2 (B)
23
IV. Cộng trừ số BCD:
: 0 0 1 0 1 0 0 1
: 0 1 0 1 0 1 0 1
84 :
0 1 1 1 1 1 1 0
0 1 1 0
1 0 0 0 0 1 0 0
: 0 0 1 0 1 0 0 0
: 0 0 0 1 1 0 0 1
47 :
0 1 0 0 0 0 0 1
0 1 1 0
0 1 0 0 0 1 1 1
1
24
0 1 1 0
: 0 0 1 0 1 0 0 1
: 0 1 0 1 0 1 0 1
-26 :
1 1 0 1 0 1 0 0
1 1 0 1 1 0 1 0
0 0 1 0 1 0 0 1
1 0 1 0 1 0 1 1
1
0 0 1 0 0 1 1 0
+
nguon VI OLET