KIẾN TRÚC VÀ TỔ CHỨC MÁY TÍNH
(Computer Organization and Architecture)
Chương 2
Biểu diễn thơng tin trong máy tính
Nội dung
1. Các hệ đếm cơ bản
2. Biểu diễn số nguyên
3. Các phép toán số học đối với số nguyên
4. Số dấu phẩy động
Chương 2 - Biểu diễn thơng tin trong máy tính
2
2.1. Các hệ đếm cơ bản
Hệ thập phân (Decimal System) → Con người sử
dụng.
Hệ nhị phân (Binary System) → Máy tính sử dụng
Hệ bát phân (Octal System) → Dùng để viết gọn số
nhị phân
Hệ thập lục phân (Hexadecimal System) → Dùng để
viết gọn số nhị phân
Chương 2 - Biểu diễn thơng tin trong máy tính
3
Hệ thập phân (Decimal System)
Cơ số 10
Dùng 10 ký số: 0, 1, 2, ..., 9
Dùng n chữ số thập phân có thể biểu diễn được 10n
giá trị khác nhau:
• 00...0 = 0
• 99...9 = 10n – 1
Chương 2 - Biểu diễn thơng tin trong máy tính
4
Hệ thập phân (tt)
Quy tắc đếm
Chương 2 - Biểu diễn thơng tin trong máy tính
5
Ví dụ
215.37 = 2*102 + 1*101 + 5*100 + 3*10-1 + 7*10-2
Các chữ số phần nguyên:
215 : 10 = 21
21 : 10 = 2
2 : 10 = 0
dư 5
dư 1
dư 2
Các chữ số phần thập phân:
0.37 * 10 = 3.7
0.7 * 10 = 7.0
phần nguyên = 3
phần nguyên = 7
Chương 2 - Biểu diễn thông tin trong máy tính
6
Hệ nhị phân (Binary System)
Cơ số 2
Dùng 2 chữ số: 0, 1
Chữ số nhị phân gọi là bit (binary digit)
Bit là đơn vị thông tin nhỏ nhất
Dùng n chữ số nhị phân có thể biểu diễn được
2n giá trị khác nhau:
00...0 = 0
11...1 = 2n - 1
Chương 2 - Biểu diễn thơng tin trong máy tính
7
Hệ nhị phân (tt)
Chương 2 - Biểu diễn thơng tin trong máy tính
8
Hệ nhị phân (tt)
Quy tắc đếm
Chương 2 - Biểu diễn thơng tin trong máy tính
9
Ví dụ
Có số nhị phân như sau: 1011 1001.101(2)
Khi đó, giá trị của chúng được tính là:
1011 1001.101(2) =
= 27 + 25 + 24 + 23 + 20 + 2-1 + 2-3
= 128 + 32 + 16 + 8 + 1 + 0.5 + 0.125
= 185.625(10)
Chương 2 - Biểu diễn thơng tin trong máy tính
10
Hệ Bát phân (Octal System)
Cơ số 8
Dùng 8 chữ số: 0, 1, 2, 3, 4, 5, 6, 7
Dùng n chữ số bát phân có thể biểu diễn được 8n
giá trị khác nhau:
• 00...0 = 0
• 77...7 = 8n – 1
Chương 2 - Biểu diễn thơng tin trong máy tính
11
Hệ bát phân (tt)
Quy tắc đếm
Chương 2 - Biểu diễn thông tin trong máy tính
12
Hệ thập lục phân (Hexadecimal System)
Cơ số 16
Dùng 16 chữ số: 0,1,..., 9, A, B, ..., F
Dùng để viết gọn cho số nhị phân: cứ một
nhóm 4 bit sẽ được thay bằng một chữ số
Hexa
Dùng n chữ số Hexa có thể biểu diễn được
16n giá trị khác nhau:
• 00...0 = 0
• FF...F = 16n - 1
Chương 2 - Biểu diễn thơng tin trong máy tính
13
Hệ thập lục phân (tt)
Quy tắc đếm
Chương 2 - Biểu diễn thơng tin trong máy tính
14
Tổng quát
Chương 2 - Biểu diễn thông tin trong máy tính
15
Chuyển đổi giữa các hệ đếm
Chương 2 - Biểu diễn thơng tin trong máy tính
16
Bảng mã 8421
Chương 2 - Biểu diễn thông tin trong máy tính
17
Chuyển đổi tổng qt
Chương 2 - Biểu diễn thơng tin trong máy tính
18
Phương pháp ghép nhóm
Chương 2 - Biểu diễn thơng tin trong máy tính
19
Chuyển đổi số thập phân → nhị phân
Chuyển đổi phần nguyên:
– Cách 1: Chia liên tiếp cho 2 rồi lấy phần dư
– Cách 2: Phân tích thành tổng các luỹ thừa của 2
Chuyển đổi phần thập phân:
– Nhân phần thập phân với 2, lấy phần nguyên
Chương 2 - Biểu diễn thơng tin trong máy tính
20
Ví dụ chuyển đổi
Có số ở hệ thập phân như sau: 61.3125
– Chuyển đổi phần nguyên: 61(10) = 111101(2)
– Chuyển đổi phần thập phân:
• 0.3125 * 2 = 0.625
• 0.625 * 2 = 1.25
• 0.25 * 2 = 0.5
• 0.5 * 2 = 1.0
phần nguyên = 0
phần nguyên = 1
phần nguyên = 0
phần nguyên = 1
– Vậy: 61.3125(10) = 111101.0101(2)
Chương 2 - Biểu diễn thơng tin trong máy tính
21
Mã hố dữ liệu trong máy tính
Nguyên tắc chung
– Mọi dữ liệu đưa vào máy tính đều phải được mã hố
thành số nhị phân
– Các loại dữ liệu:
• Dữ liệu nhân tạo: do con người quy ước
• Dữ liệu tự nhiên: tồn tại khách quan với con người
Mã hoá dữ liệu nhân tạo:
• Dữ liệu dạng số: mã hố theo chuẩn quy ước
• Dữ liệu ký tự: mã hố theo bộ mã ký tự
Chương 2 - Biểu diễn thông tin trong máy tính
22
Mã hố dữ liệu trong máy tính (tt)
Mã hố và tái tạo tín hiệu tự nhiên
TH V.lý
Bộ tạo
tín hiệu
TH Ltục
TH số
ADC
MT
TH V.lý
Bộ tái tạo
tín hiệu
TH Ltục
TH số
DAC
Chương 2 - Biểu diễn thơng tin trong máy tính
23
Mã hố dữ liệu trong máy tính (tt)
Chương 2 - Biểu diễn thơng tin trong máy tính
24
Mã hố dữ liệu trong máy tính (tt)
Chương 2 - Biểu diễn thơng tin trong máy tính
25
Lưu trữ dữ liệu trong máy tính
Bộ nhớ chính được tổ chức theo byte
Độ dài dữ liệu có thể chiếm 1 hay nhiều byte
Có 2 cách lưu trữ các byte trong bộ nhớ chính:
– Little-endian (đầu nhỏ): byte có ý nghĩa thấp
hơn được lưu trữ ở vị trí có địa chỉ nhỏ hơn
– Big-endian (đầu to): byte có ý nghĩa thấp hơn
được lưu trữ ở vị trí có địa chỉ lớn hơn
Chương 2 - Biểu diễn thơng tin trong máy tính
26
Ví dụ lưu trữ dữ liệu 32 bit
12
34
56
78
...
Địa chỉ
...
Địa chỉ
78
X
12
X
56
X +1
34
X +1
34
X+2
56
X+2
12
X+3
78
X+3
...
...
đầu nhỏ
đầu to
Ví dụ: Intel 80x86, Px:
Motorola 680x0:
Power PC, Itanium:
đầu nhỏ
đầu to
cả hai loại
Chương 2 - Biểu diễn thông tin trong máy tính
27
2.2. Biểu diễn số ngun
Số ngun khơng dấu (unsigned integer)
Số nguyên có dấu (signed integer)
Chuyển đổi độ dài
Bài tập
Chương 2 - Biểu diễn thông tin trong máy tính
28
Số nguyên không dấu
Nguyên tắc chung
– Dùng n chữ số nhị phân thì biểu diễn được 2n số
– Dải biểu din: 0 ữ 2n 1
Vớ d:
ã n = 8 bit: Dải biểu diễn: 0 ÷ 28 -1, hay 0 ữ 255
ã n = 16 bit: Di biu din: 0 ữ 216 - 1, hay 0 ữ 65535
ã n = 32 bit: Dải biểu diễn: 0 ÷ 232 – 1, 0÷4294967295
Cách biểu diễn
– Biểu diễn ở dạng nhị phân một cách bình thường
Chương 2 - Biểu diễn thơng tin trong máy tính
29
Hiện tượng tràn số
Chương 2 - Biểu diễn thơng tin trong máy tính
30
Các ví dụ
Ví dụ 1: biểu diễn các số nguyên không dấu sau đây
dùng 8 bit:
A = 73;
B = 138
Giải:
– A = 73 = 64 + 8 + 1 = 26 + 23 + 20
73 = 0100 1001
– B = 138 = 128 + 8 + 2 = 27 + 23 + 21
138 = 1000 1010
Chương 2 - Biểu diễn thơng tin trong máy tính
31
Các ví dụ (tt)
Ví dụ 2: Hãy xác định giá trị của các số nguyên
không dấu C, D được biểu diễn bằng 8 bit như sau:
C = 0010 1010;
D = 1010 0110
Giải:
– C = 0010 1010 = 25 + 23 + 21 = 32 + 8 + 2 = 42
– D = 1010 0110 = 27 + 25 + 22 + 21 =
= 128 + 32 + 4 + 2 = 166
Chương 2 - Biểu diễn thơng tin trong máy tính
32
Số nguyên có dấu
Nguyên tắc chung
– Dùng n chữ số nhị phân thì biểu diễn được 2n số
– Dải biểu din: - 2n-1 ữ 2n-1 1
Vớ d:
ã n = 8 bit: Dải biểu diễn: - 27 ÷ 27 -1, hay -128 ữ 127
ã n = 16 bit: - 215 ữ 215 - 1, hay - 32768 ữ 32767
ã n = 32 bit: - 231 ÷ 231 - 1, hay - 2147483648 ÷ 2147483647
Cách biểu diễn:
– PP1: Dùng dấu và độ lớn (Sign-Magnitude)
– PP2: Dùng mã bù 2 (Two’s complement)
Chương 2 - Biểu diễn thơng tin trong máy tính
33
Dùng dấu và độ lớn
Bit lớn nhất biểu diễn dấu:
– 0: biểu diễn số dương
– 1: biểu diễn số âm
Các bit cịn lại biểu diễn giá trị
– Ví dụ:
+23 = 0001 0111; -23 = 1001 0111
Vấn đề nảy sinh
– Cần quan tâm cả phần dấu và phần độ lớn khi
thực hiện các phép tốn số học
– Có đến 2 cách biểu diễn cho số 0 (+0 và -0)
Chương 2 - Biểu diễn thơng tin trong máy tính
34
Dùng mã bù 2
Đối với số dương: biểu diễn dạng nhị phân
Đối với số âm: tìm số bù 2:
– B1: đổi số dương tương ứng → nhị phân
– B2: tìm số bù 1 (đảo bit 1 → 0, 0 → 1)
– B3: tìm số bù 2: số bù 1 cộng với 1
Số bù 2 thu được chính là cách biểu diễn số âm
Đặc điểm:
– Thực hiện các phép toán số học dễ dàng
– Chỉ có một sự biểu diễn duy nhất cho số 0
Chương 2 - Biểu diễn thông tin trong máy tính
35
Dùng mã bù 2 (tt)
Dạng tổng quát của số nguyên A
A = an-1an-2….a2a1a0
Giá trị của A được tính bởi công thức:
Dải giá trị của số nguyên sử dụng n bit:
-2n-1 ÷ 2n-1 – 1
- 8 bit:
- 16 bit:
- 32 bit:
-128 ÷ 127
-32 768 ÷ 32 767
-2 147 483 648 ÷ 2 147 483 647
Chương 2 - Biểu diễn thơng tin trong máy tính
36
Các ví dụ
Ví dụ 1: Biểu diễn các số nguyên có dấu sau đây
bằng 8 bit: A = + 69; B = - 92
Giải:
A = + 69 = 0100 0101
B = - 92 Ta có: + 92 = 0101 1100
Số bù 1
= 1010 0011
+
1
Số bù 2
= 1010 0100
Vậy: B = -92 = 1010 0100
Chương 2 - Biểu diễn thông tin trong máy tính
37
Các ví dụ
Ví dụ 2: Xác định giá trị của các số nguyên có dấu
biểu diễn dưới đây (dùng dấu - độ lớn):
C = 0110 1010;
D = 1100 0011
Giải:
C = 0110 1010 = + (64 + 32 + 8 + 2) = 106
D = 1100 0011 = - (64 + 2 + 1) = - 67
Chương 2 - Biểu diễn thơng tin trong máy tính
38
Các ví dụ
Ví dụ 3: Xác định giá trị của các số nguyên có dấu
được biểu diễn dưới đây (dùng mã bù 2):
E = 0101 1110;
F = 1101 1010
Giải:
E = 0101 1110 = 64 + 16 + 8 + 4 + 2 = 94
F = 1101 1010 = -128 + 64 + 16 + 8 + 2 = -38
Chương 2 - Biểu diễn thơng tin trong máy tính
39
Chuyển đổi độ dài (byte word)
Đối với số dương: thêm/bớt số 0 ở trước:
+23 =
0001 0111
+23 = 0000 0000 0001 0111
(8 bit)
(16 bit)
Đối với số âm: thêm/bớt số 1 ở trước
-23 =
1110 1001
-23 = 1111 1111 1110 1001
(8 bit)
(16 bit)
Chương 2 - Biểu diễn thơng tin trong máy tính
40
Biểu diễn số nguyên theo mã BCD
BCD – Binary Coded Decimal
– Được dùng để tính tốn số thập phân trong hệ nhị
phân
– Là số viết theo hệ cơ số 16 nhưng tính theo hệ cơ số
10
• 12BCD
trong hệ nhị phân là 0001 0010
có giá trị là
12 chứ khơng phải giá trị 18 (1216 = 18)
• Dùng 4 bit để mã hóa cho các chữ số thập phân từ 0…9
(xem lại bảng mã 8421 phần các số từ 0-9)
• Có 6 tổ hợp bit không sử dụng:
1010; 1011; 1100; 1101; 1110; 1111
Chương 2 - Biểu diễn thơng tin trong máy tính
41
Các kiểu lưu trữ số BCD
BCD khơng gói (unpacked BCD)
– Mỗi số BCD-4bit được lưu trữ trong 4 bit thấp của byte
– Ví dụ: Số 35 được lưu trong 2 byte
0011
0101
BCD gói (packed BCD)
– Hai số BCD-4bit được lưu chung trong 1 byte
– Ví dụ: Số 35 được lưu trong 1 byte
0011
0101
Chương 2 - Biểu diễn thơng tin trong máy tính
42
2.3. Các phép toán trên số nguyên
Phép cộng: thực hiện như cách tính tay thơng
thường nhưng ở hệ nhị phân
Cộng
Kết quả
Nhớ
0+0
0
0
0+1
1
0
1+0
1
0
1+1
0
1
Phép trừ: Thực hiện bằng cách cộng số bị trừ với bù
2 của số trừ
– Ví dụ: A=1001, B=0011 có bù hai là 1101
– Vậy A-B = 1001+1101 = (1)0110 . Số (1) là số nhớ
(carry)
Chương 2 - Biểu diễn thơng tin trong máy tính
43
Bài tập
1. Số nhị phân 8 bit (11001100), số này tương ứng với
số nguyên thập phân có dấu là bao nhiêu nếu số
trên được biểu diễn ở dạng:
- Số bù 1.
- Số bù 2.
2. Đổi các số sau đây:
a. (011011)2
ra số thập phân.
b. (-2005)10
c. (55.875)10
ra số nhị phân 16 bits.
ra số nhị phân.
Chương 2 - Biểu diễn thơng tin trong máy tính
44
2.3. Các phép toán trên số nguyên (tt)
Phép nhân số không dấu:
– Giải thuật nhân số n bit
a) Đặt bộ đếm tới n
b) Xố thanh ghi 2n bit chứa tích thành phần; Nhớ ← 0
c) Kiểm tra bit LSB của số nhân; nếu là 1 thì cộng số bị
nhân vào n bit nhiều ý nghĩa nhất của tích thành phần
d) Dịch phải Nhớ, Tích thành phần, Số nhân đi 1 bit
e) Giảm bộ đếm đi 1. Lặp lại các bước từ c cho đến khi bộ
đếm bằng không. Đọc kết quả từ thanh ghi tích thành
phần
Ví dụ: 10 x 13
– Số bị nhân: 10(10) = 1010 (2)
– Số nhân:
13(10) = 1101(2)
Chương 2 - Biểu diễn thơng tin trong máy tính
45
Giải thuật nhân số khơng dấu
Start
C:=0; A:=0; Bé ®Õm:=n
M chøa sè bị nhân
Q chứa số nhân
Sai
Q0 = 1?
Đúng
C,A:=A+M
Dịch phải C, A, Q
Dec(Bộ đếm)
Sai
Bộ đếm = 0?
Đúng
End
Tích chứa
trong A,Q
Chng 2 - Biu diễn thơng tin trong máy tính
46
S mch nhõn
Số bị nhân
Mn-1
. .
.
M0
Cộng
Bộ cộng n bit
Logic điều khiển
dịch và cộng
Dịch phải
An-1
C
.
.
.
A0
Qn-1
.
.
.
Q0
Số nhân
Chng 2 - Biu din thơng tin trong máy tính
47
Ví dụ: 13 x 10
Bước
B.đếm
Số nhân
Nhớ
Tích thành phần
(a) và (b)
4
1101
0
0000 0000
(c)
4
1101
0
1010 0000
1
Cộng 1010
(d)
4
0110
0
0101 0000
1
Dịch phải
(e)
3
0110
0
0101 0000
1
Giảm n
(c)
3
0110
0
0101 0000
2
LSB=0
(d)
3
0011
0
0010 1000
2
Dịch phải
(e)
2
0011
0
0010 1000
2
Giảm n, LSB=1
(c)
2
0011
0
1100 1000
3
Cộng 1010
(d)
2
0001
0
0110 0100
3
Dịch phải
(e)
1
0001
0
0110 0100
3
Giảm n, LSB=1
(c)
1
0001
1
0000 0100
4
Cộng 1010
(d)
1
0000
0
1000 0010
4
Dịch phải
(e)
0
0000
0
1000 0010
4
Giảm n. Dừng
Vịng lặp
Ghi chú
Khởi trị,LSB=1
Chương 2 - Biểu diễn thơng tin trong máy tính
48
2.3. Các phép toán trên số nguyên (tt)
Phép nhân số có dấu:
– Giải pháp 1:
• Chuyển đổi thành số dương nếu cần
• Thực hiện phép nhân như đối với số khơng dấu
• Kiểm tra bit dấu của 2 số, nếu chúng trái dấu thì tích là
số âm.
– Giải pháp 2: sử dụng thuật tốn Booth kinh điển (có thể
áp dụng cho 2 số dương, một số âm và một dương
hoặc cả 2 số đều âm).
Chương 2 - Biểu diễn thông tin trong máy tính
49
Giải thuật Booth
Start
A:=0; Q-1:=0; Bé ®Õm:=n
M chøa số bị nhân
Q chứa số nhân
= 10
= 01
Q0, Q-1
= 11
= 00
A := A - M
A := A + M
Dịch phải A, Q, Q-1
Dec(Bộ đếm)
Sai
Bộ đếm = 0?
Đúng
Lu ý: An-1 đợc tái tạo
End
Tích chứa
trong A,Q
Chng 2 - Biu din thụng tin trong máy tính
50