You are on page 1of 31

Chương I

CÁC HỆ THỐNG SỐ

1
1.1. Hệ thập phân

Cơ số của hệ thập phân là 10 và chỉ sử dụng 10 chữ số (từ 0


đến 9) để biểu diễn cho số bất kỳ.

Phần nguyên của số thập phân có các trọng số là các


lũy thừa của 10 với số mũ tăng dần từ phải sang trái bắt đầu
từ 100 =1:
…105 104 103 102 101 100.
Phần số lẻ (phần phân số), các trọng số là các lũy
thừa của 10 với các số mũ âm và giảm dần từ trái sang phải:
102 101 100. 10-1 10-2 10-3 10-4 …

2
1.1. Hệ thập phân

Số thập phân có thể được biểu diễn bằng tổng các tích của
các digit (các ký hiệu 0  9) nhân với trọng số tương ứng.
Do đó, số 9240 có thể được biểu diễn như:
     (9 x 103) + (2 x 102) + (4 x 101) + (0 x 100)
hoặc
9 x 1,000 + 2 x 100 + 4 x 10 + 0 x 1
Biểu diễn số 480.52 bằng tổng các tích.

480.52 = (4 x 102) + (8 x 101) + (0 x 100) + (5 x 10-1) +(2 x 10-2)

3
1.2. Hệ nhị phân

Hệ nhị phân được sử dụng trong các hệ thống số. Số nhị


phân có cơ số là 2 và chỉ sử dụng các digit (ký hiệu) là 0 và
1 để biểu thị các lượng.
Phần số nguyên của số nhị phân là các lũy thừa của 2
với số mũ tăng dần từ phải sang trái bắt đầu từ 20 =1:
…25 24 23 22 21 20.
Phần số lẻ là các lũy thừa của 2 với số mũ âm giảm
dần từ trái sang phải:
22 21 20. 2-1 2-2 2-3 2-4 …

4
Số thập Số nhị
1.2. Hệ nhị phân phân phân

0 000
0
Một dãy số nhị phân từ 0 đến 15 như 1 000
trong bảng. 1
2 001
Chú ý đến trình tự của các số 0 và số 0
1 trong mỗi cột. 3 001
1
4 010
0
Counter 0 1 0 1 0 1 0 1 0 1 Decoder
5 010
0 0 1 1 0 0 1 1 0 0
1
0 0 0 0 1 1 1 1 0 0
6 011
0
0 0 0 0 0 0 0 0 1 1
7 011
1
8 100
0 5
Chuyển đổi số nhị phân
Chuyển đổi một số nhị phân sang số thập phân tương đương
bằng cách cộng các giá trị cột của các bit 1 và bỏ qua tất cả
các bit 0.
Đổi số nhị phân 100101.01 sang số thập phân.
Bắt đầu viết các cột trọng số; sau đó cộng tất cả các
trọng số tương ứng với bit 1 trong số nhị phân.
25 24 23 22 21 20. 2-1 2-2
32 16 8 4 2 1 . ½ ¼
1 0 0 1 0 1. 0 1
32 +4 +1 +¼ = 37¼
6
Chuyển đổi số nhị phân
Chuyển đổi số thập phân sang số nhị phân bằng trình tự
ngược lại. Viết trọng số của số thập phân cho mỗi cột và gán
các giá trị 1 tại những cột để tổng của nó bằng số thập phân.

Đổi số thập phân 49 sang số nhị phân.


Trọng số của các cột là được nhân đôi tại mỗi vị trí
từ phải sang trái. Viết các trọng số cho đến khi trọng
số cuối cùng là lớn hơn số thập phân muốn chuyển
đổi.
2 2 2 2 2 2 2.
6 5 4 3 2 1 0

64 32 16 8 4 2 1.
0 1 1 0 0 0 1.
7
Chuyển đổi số nhị phân
Chuyển đổi phần số lẻ sang số nhị phân bằng cách nhân đôi
phần số lẻ. Tiếp tục lặp lại nhân đôi với phần số lẻ của kết
quả. Số nhớ chính là số nhị phân.

Đổi số thập phân 0.188 sang số nhị phân bằng cách


lặp nhân đôi phần số lẻ của kết quả với 2.
MSB
0.188 x 2 = 0.376 nhớ = 0
0.376 x 2 = 0.752 nhớ = 0
0.752 x 2 = 1.504 nhớ = 1
0.504 x 2 = 1.008 nhớ = 1
0.008 x 2 = 0.016 nhớ = 0
Kết quả = .00110 (lấy 5 digit có nghĩa)
8
Chuyển đổi số nhị phân
Có thể chuyển đổi số thập phân sang hệ cơ số bất kỳ bằng
phép chia lặp đi lặp lại cho cơ số đó. Ví dụ đổi sang số nhị
phân bằng cách lặp phép chia cho 2:
Đổi số thập phân 49 sang số nhị phân bằng cách
chia lặp cho 2.
Cách này gọi là “phép chia ngược” và kết quả sẽ
được đọc từ trái sang phải. Đặt thương số sang bên
trái và số dư đặt lên trên.
Kết quả: Số dư
1 1 0 0 0 1
0 1 3 6 12 24 49 2
Tiếp tục chia cho Số thập phân Cơ số
đến khi thương số Thương số
bằng 0
9
Phép cộng số nhị phân
Qui tắc cộng số nhị phân là
0+0=0 Tổng = 0, nhớ = 0
0+1=1 Tổng = 1, nhớ = 0
1+0=1 Tổng = 1, nhớ = 0
1 + 1 = 10 Tổng = 0, nhớ = 1
Khi đã có nhớ bằng 1 do kết quả phép tính trước, thì qui tắc

1 + 0 + 0 = 01 Tổng = 1, nhớ = 0
1 + 0 + 1 = 10 Tổng = 0, nhớ = 1
1 + 1 + 0 = 10 Tổng = 0, nhớ = 1
1 + 1 + 1 = 11 Tổng = 1, nhớ = 1

10
Phép cộng số nhị phân
Cộng số nhị phân 00111 với 10101 và biểu thị kết
quả cùng với phép cộng số thập phân tương ứng.
0111
00111 7
10101 21
11100 = 28

11
Phép trừ số nhị phân
Qui tắc thực hiên phép trừ số nhị phân là
00=0
11=0
10=1
10  1 = 1 (mượn 1)
Trừ số nhị phân 10101 cho 00111 và biểu thị kết
quả cùng với phép trừ số thập phân tương đương.
111
10101
/ / / 21
00111 7
01110 = 14

12
Số bù 1 (1’s Complement)
Số bù 1 của số nhị phân nhận được bằng cách nghịch đảo
các digit. Để có số bù 1, thay đổi tất cả các digit 0 tới 1 và
tất cả các digit 1 tới 0.
Ví dụ, số bù 1 của 11001010 là
00110101
Trong mạch điện tử số, số bù 1 được tạo ra bằng cách sử
dụng các cổng ĐẢO:
1 1 0 0 1 0 1 0

0 0 1 1 0 1 0 1
13
Số bù 2 (2’s Complement)
Số bù 2 của một số nhị phân có được bằng cách cộng thêm
1 vào bit LSB (bit có trọng số nhỏ nhất) của số bù 1.
Nhớ rằng số bù 1 của 11001010 là
00110101 (số bù 1)
Số bù 2 bằng số bù 1 cộng thêm 1: +1
1 1 0 0 1 0 1 0 00110110 (số bù 2)
1

0 0 1 1 0 1 0 1
Input bits
Carry
Adder
in (add 1)
Output bits (sum)

0 0 1 1 0 1 1 0

14
Biểu diễn số nhị phân có dấu
Có nhiều cách biểu diễn số nhị phân có dấu. Trong tất cả
các trường hợp, bit MSB (bit có trọng số lớn nhất – bit tận
cùng bên trái) sử dụng làm bit dấu, để biểu diễn số dương
hoặc số âm.
Máy tính sử dụng số bù 2 cải tiến cho các số nhị
phân có dấu. Số dương được biểu diễn dưới dạng chuẩn (bit
dấu bằng 0) và số âm biểu diễn bằng dạng bù 2 (bit dấu
bằng 1).
Ví dụ, số dương +58 được viết khi sử dụng 8-bit là
00111010 (dạng chuẩn).
Bit dấu Các bit trị số

15
Số nhị phân có dấu
Số âm được viết bằng số bù 2 của số dương tương ứng.
Số âm 58 được viết là:
58 = 11000110 (dạng bù)
Bit dấu Các bit trị số
Một cách đơn giản để đọc một số nhị phân có dấu là gán cho bit dấu
một giá trị trọng số bằng -128 (trường hợp số có 8-bit). Sau đó cộng
tất cả các trọng số của các cột có bit giá trị 1.
Nếu bit dấu = 128, chứng minh rằng số 11000110 = 58 là số
bù 2 của số nhị phân có dấu:
Các trọng số: 128 64 32 16 8 4 2 1.
1 1 0 0 0 1 1 0
128 +64 +4 +2 = 58

16
Biểu diễn số theo dấu phẩy động
Sử dụng dấu phẩy động có thể biểu thị được các số rất
lớn và rất nhỏ. Một số nhị phân có độ dài 32-bit được
biểu diễn như sau.
S E (8 bits) F (23 bits)
Bit dấu Số mũ +127 Phần định trị bỏ bớt bit MSB
Biểu diễn tốc độ của ánh sáng, c, bằng dạng dấu phẩy động.
(c = 0.2998 x 109)
Dạng số nhị phân, c = 0001 0001 1101 1110 1001 0101 1100 00002.
Dạng ký hiệu khoa học, c = 1.001 1101 1110 1001 0101 1100 0000 x
S 2=280. vì là số dương. E = 28 + 127 = 15510 = 1001 10112. F là 23 bit tiếp
theo của phần định trị sau khi bỏ đi bit 1 đầu tiên.
Biểu diễn dưới dạng dấu phẩy động,
c = 001 1101 1110 1001 0101 1100
0 10011011
17
Các phép toán cho các số nhị phân có dấu
Trong các phép cộng và phép trừ đơn giản, sử dụng kiểu
biểu diễn với số âm bằng số bù 2 cho số nhị phân có
dấu.
Qui tắc phép cộng: Cộng 2 số có dấu. Bỏ đi bit nhớ ở kết
quả cuối cùng. Kết quả là dạng số có dấu.
Ví dụ:
00011110 = +30 00001110 = +14 11111111 = 1
00001111 = +15 11101111 = 17 11111000 = 8
00101101 = +45 11111101 = 3 1 11110111 = 9
Bỏ bit nhớ

18
Các phép toán cho các số nhị phân có dấu
Chú ý rằng khi số bit yêu cầu để lưu giữ kết quả không
đủ, sẽ xuất hiện sự tràn (overflow). Sự tràn chỉ xuất hiện
khi cả hai số hạng là cùng dấu. Sự tràn sẽ được biểu lộ
bởi sự sai khác của bit dấu.
Hai ví dụ:
01000000 = +128 10000001 = 127
01000001 = +129 10000001 = 127
10000001 = 126 Bỏ bit nhớ 100000010 = +2

Sai! Kết quả không đúng và bit


dấu bị thay đổi.

19
Các phép toán cho các số nhị phân có dấu
Qui tắc phép trừ: Cộng số bị trừ với số bù 2 của số trừ. Bỏ
đi bit nhớ cuối cùng. Kết quả là số nhị phân có dấu.

Ví dụ:
00011110 (+30) 00001110 (+14) 11111111 (1)
 00001111 –(+15)  11101111 –(17)  11111000 –(8)
Thực hiện bù 2 cho số trừ, sau đó cộng:
00011110 = +30 00001110 = +14 11111111 = 1
11110001 = 15 00010001 = +17 00001000 = 8
1 00001111 = +15 00011111 = +31 1 00000111 = +7
Bỏ bit nhớ Bỏ bit nhớ

20
1.3. Hệ thập lục phân
Decimal Hexadecimal Binary
(Hexadecimal Numbers) 0 0 0000
1 1 0001
Hệ thập lục phân sử dụng 16 ký hiệu 2 2 0010
(chữ số và chữ cái) để biểu diễn các số: 3 3 0011
các số từ 0 đến 9 và các chữ từ A đến 4 4 0100
F. 5 5 0101
6 6 0110
Với số nhị phân lớn có thể dễ
7 7 0111
dàng chuyển đổi sang số hexa bằng 8 8 1000
cách nhóm 4 bit thành một nhóm và 9 9 1001
viết bằng ký hiệu hexa tương đương. 10 A 1010
11 B 1011
Biểu diễn số 1001 0110 0000 11102 12 C 1100
dưới dạng số thập lục phân: 13 D 1101
Nhóm số nhị phân thành từng nhóm 14 E 1110
4-bit bắt đầu từ bên phải. Do đó, ta 15 F 1111
được 960E
21
1.3. Hệ thập lục phân Decimal Hexadecimal Binary
0 0 0000
1 1 0001
Hệ thập lục phân có các trọng số là lũy 2 2 0010
thừa của cơ số 16, với các số mũ tăng 3 3 0011
dần từ phải sang trái. 4 4 0100
5 5 0101
6 6 0110
Các trọng số {4096
16 16 16 16 .
3 2 1

256 16 1 .
0 7
8
7
8
0111
1000
9 9 1001
Biểu diễn 1A2F16 bằng số thập phân. 10 A 1010
11 B 1011
Viết các cột trọng số:
12 C 1100
4096 256 16 1
13 D 1101
1 A 2 F16
14 E 1110
1(4096) + 10(256) +2(16) +15(1) = 670310 15 F 1111

22
1.4. Hệ bát phân
Decimal Octal Binary
(Octal Numbers) 0 0 0000
1 1 0001
Hệ bát phân sử dụng 8 ký hiệu là các 2 2 0010
chữ số từ 0 đến 7 để biểu diễn các số. 3 3 0011
Không dùng các chữ số 8 và 9. 4 4 0100
5 5 0101
Số nhị phân có thể dễ dàng
6 6 0110
chuyển đổi sang số bát phân bằng cách 7 7 0111
nhóm 3 bit vào một nhóm và viết số 8 10 1000
bát phân tương đương cho từng nhóm. 9 11 1001
10 12 1010
Biểu diễn số 1 001 011 000 001 1102
11 13 1011
theo hệ bát phân: 12 14 1100
Nhóm 3-bit một số nhị phân bắt đầu từ 13 15 1101
bên phải. Do đó, được 1130168 14 16 1110
15 17 1111

23
1.4. Hệ bát phân Decimal Octal Binary
0 0 0000
1 1 0001
Số bát phân có các trọng số là lũy thừa 2 2 0010
của 8, với số mũ tăng dần từ phải sang 3 3 0011
trái. 4 4 0100
5 5 0101
6 6 0110
Các trọng số {512
8 3
82 81 80 .
64 8 1 .
7
8
7
10
0111
1000
9 11 1001
Biểu diễn số 37028 thành số thập 10 12 1010
phân. 11 13 1011
Viết các cột trọng số: 12 14 1100
512 64 8 1 13 15 1101
3 7 0 28 14 16 1110
3(512) + 7(64) +0(8) +2(1) = 198610 15 17 1111

24
1.5. Mã BCD Decimal Binary BCD
0 0000 0000
1 0001 0001
Mã BCD (Binary coded decimal) 2 0010 0010
là một mã thông dụng thường được 3 0011 0011
sử dụng trong các hệ thống số khi 4 0100 0100
5 0101 0101
cần biểu thị số thập phân dưới 6 0110 0110
dạng nhị phân. 7 0111 0111
Bảng bên thể hiện sự khác 8 1000 1000
nhau giữa mã nhị phân chuẩn và 9 1001 1001
10 1010 0001 0000
mã BCD. Mã BCD biểu diễn mỗi 11 1011 0001 0001
digit số thập phân bằng một mã 12 1100 0001 0010
4-bit. Các mã từ 1010 đến 1111 không 13 1101 0001 0011
sử dụng trong mã BCD. 14 1110 0001 0100
15 1111 0001 0101
25
1.5. Mã BCD

Như vậy mã BCD có các cột trọng số là các nhóm 4 bit.


Một số BCD 8-bit có các cột trọng số là:
80 40 20 10 8 4 2 1.

Viết các cột trọng số cho số BCD


1000 0011 0101 1001?

8000 4000 2000 1000 800 400 200 100 80 40 20 10 8 4 2 1


Chú ý rằng để chuyển sang số thập phân bằng cách cộng
các cột trọng số tương ứng với bit có giá trị bằng 1:
8000 + 200 +100 + 40 + 10 + 8 +1 = 835910

26
1.6. Mã Gray
Decimal Binary Gray code
(Gray code) 0 0000 0000
1 0001 0001
Mã Gray là mã không sử dụng trọng 2 0010 0011
số. Mã Gray có các từ mã kế tiếp 3 0011 0010
nhau chỉ khác nhau 1 bit. Mã Gray 4 0100 0110
5 0101 0111
được sử dụng để ngăn ngừa sự phát 6 0110 0101
sinh lỗi của hệ thống nếu có hơn 1 7 0111 0100
bit thay đổi trong cùng một thời 8 1000 1100
gian. 9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000
27
1.6. Mã Gray
Một ví dụ ứng dụng của mã Gray. Bộ encoder sử dụng 3 bộ
phát/thu tia hồng ngoại để xác định vị trí góc quay của một trục
quay. Bộ encoder bên trái sử dụng bộ mã nhị phân và có thể sẽ
có 3 bit thay đổi cùng lúc, dễ có khả năng phát sinh lỗi. Bộ
encoder bên phải sử dụng mã Gray và chỉ có 1 bit thay đổi,
giảm thiểu rất nhiều khả năng sinh lỗi.

Chuỗi số nhị phân


Chuỗi mã Gray

28
1.7. Mã ASCII (ASCII code)

ASCII là bộ mã cho các mẫu tự La tinh và các ký tự điều


khiển. Đầu tiên, mã ASCII mã hóa 128 ký tự và ký hiệu sử
dụng 7-bit. 32 ký tự đầu tiên là ký tự điều khiển.

Năm 1981, IBM đề xuất bộ mã ASCII mở rộng (extended


ASCII), sử dụng bộ mã 8-bit và tăng số ký tự lên 256. Các
bộ mã khác (như bộ mã Unicode) được đề xuất sau đó để
mã hóa các ký tự của các ngôn ngữ khác tiếng Anh.

29
30
1.8. Phương pháp chẵn lẻ
(Parity Method)
Là một phương pháp để tìm lỗi đường truyền xảy ra với
1 bit (hoặc một số lẻ bit). Parity bit là một bit mở rộng
được thêm vào sao cho tổng số các bit 1 là số chẵn
(even parity) hoặc số lẻ (odd parity).

Mã ASCII của chữ “a” là 1100001 và của chữ “A” là


1000001. Sử dụng bit parity nào đính vào để có parity
lẻ?
Mã ASCII của “a” có số lẻ bit giá trị 1; do đó bit parity
là 0. Mã ASCII của “A” có số chẵn các bit bằng 1; do
đó bit parity là 1.

31

You might also like