Professional Documents
Culture Documents
Cau Truc May Tinh Pham Cong Thang 2. Bieu Dien Du Lieu Trong Cac He Thong May Tinh (Cuuduongthancong - Com)
Cau Truc May Tinh Pham Cong Thang 2. Bieu Dien Du Lieu Trong Cac He Thong May Tinh (Cuuduongthancong - Com)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
• Tài liệu Tham khảo:
[1] Computer Organization and Architecture 8th Edition, William
Stallings,2011
[2] Bài giảng kiến trúc máy tính – Viện CNTT-ĐH BK HN
[3] Andrew S. Tanenbaum, Structured Computer Organization, 5rd
Edition, Prentice- Hall International Edition, 2006.
[4] Các nguồn tham khảo khác từ internet
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn dữ liệu trong các hệ thống máy tính
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Giới thiệu chung
• Về mặt toán học, ta có thể biểu diễn số theo hệ đếm cơ số bất kì.
• Khi nghiên cứu về máy tính, ta chỉ quan tâm đến các hệ đếm sau đây:
• Hệ thập phân (Decimal System)
• Hệ nhị phân (Binary System)
• Hệ bát phân (Octal System)
• Hệ mười sáu (Hexadecimal System)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đơn vị thông tin
• Bit
• Đơn vị thông tin nhỏ nhất
• Chữ số nhị phân 0 hoặc 1
• Byte:
• Đơn vị thông tin cơ bản để lưu trữ thông tin
• 1 byte = 8 bit
• 1 nibble =4 bit (half-byte)
• Đơn vị thông tin khác:
• 1 Kilo Byte = 1 KB = 210 byte = 1024 byte
• 1 Mega Byte = 1 MB = 210 KB = 1048576 byte
• 1 Giga Byte = 1 GB = 210 MB
• …
5
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Hệ thập phân (decimal)
• Hệ cơ số 10
• Chỉ sử dụng 10 chữ số: 0, 1, …,9
• Ví dụ:
248 2 10 2 4 101 8 10 0
458.45 4 10 2 5 101 8 10 0 4 10 1 5 10 -2
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Hệ thập phân (decimal)
• Tổng quát:
a0 , a1,..., an , a 1,..., a m
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Hệ nhị phân (binary)
• Hệ cơ số 2
• Chỉ sử dụng 2 chữ số nhị phân: 0, 1
• Chữ số nhị phân gọi là bit (binary digit)
• Ví dụ:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Hệ nhị phân (binary)
• Tổng quát
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Hệ thập lục phân (hexa-decimal)
• Hệ cơ số 16
• Sử dụng 16 chữ số : 0, 1,2,3,4,5,6 ,7,8,9, A, B, C, D, E, F
• Các chữ số A ,B, C, D, E, F biểu diễn các giá trị tương ứng là 10, 11, 12,
13, 14, 15
• 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
• Ví dụ:
10
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Hệ cơ số X (X>=2)
• Sử dụng X chữ số : 0, 1,…,X-1 để biểu diễn
• Ví dụ:
137(8) 1 8 2 3 81 7 80
64 24 7 95 (10)
11
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Hệ cơ số X (X>=2)
• Tổng quát
12
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đổi hệ cơ số
• Đổi hệ cơ số X sang hệ thập phân
• Ví dụ:
122 (7) 1 7 2 2 71 2 70
49 14 2 65 (10)
13
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đổi hệ cơ số
• Đổi số nguyên thập phân A sang hệ cớ số X
• Chia dần cho X rồi lấy phần a và thương số N
0 0
• Tiếp tục thực hiện phép chia cho đến khi thương số bằng 0
• Kết quả nhận được các số dư:
• Ta nhận được kêt quả (đảo ngược a1,tựancác số dư) :
a0 ,thứ
14
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đổi số nguyên thập phân A sang hệ cớ số X
• Ví dụ: chuyển đổi133 (10) sang hệ 2
10000101 (2)
15
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đổi số lẻ thập phân A sang hệ cơ số X
• Nếu phần thập phân nhận được khác không, tiếp tục cho đến khi phần
thập phân của tích nhận được bằng 0 (hoặc dừng lại sau một số bước)
16
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đổi số lẻ thập phân A sang hệ cơ số X
• Ví dụ:
17
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đổi số lẻ thập phân A sang hệ cơ số X
• Ví dụ:
18
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chuyển đối giữa số nhị phân và thập lục phân
• Nhóm 4 bit từ phải qua trái và đổi sang chữ số trong hệ thập lục phân
tương ứng
• Ví dụ: chuyển đổi số nhị phân sang hệ thập
1111 0111 1010 0001 (2)
lục phân
F 7 A 1 (2)
19
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chuyển đối giữa số nhị phân và bát phân
• Nhóm 3 bit từ phải qua trái và đổi sang chữ số trong hệ bát phân
tương ứng
1111 0111 1010 0001 (2)
• Ví dụ: chuyển đổi số nhị phân sang bát phân
1 7 3 6 4 1 (2)
20
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các phép toán trên bit
• Các phép toán số học
• Cộng(+), trừ(-), nhân(*) và chia(/)
• Các phép toán logic
• AND(&), OR(|), XOR(⊕) và NOT(!)
• Thứ tự ưu tiên(left-right, top-down)
• *, / , + và - ,
• !, &, ⊕ và |
21
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các phép toán trên bit
• Các phép toán số học trên bit
• Ví dụ:
+ +
1001 0101 (2) 149 (10
22
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các phép toán logic trên bit
• Các phép toán logic trên bit
Not : !0 =1 !1= 0
23
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các cổng logic cơ bản
• Có các loại cổng logic cơ bản sau đây: BUFFER, NOT, AND, OR,
NAND, NOR, XOR và XNOR.
• Cổng BUFFER
• Cổng NOT
24
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các cổng logic cơ bản
• Cổng AND
• Cổng NAND
25
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các cổng logic cơ bản
• Cổng OR
• Cổng NOR
26
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các cổng logic cơ bản
• Cổng XOR
• Cổng XNOR
27
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số trên máy tính
• Dùng 1 chuỗi bit để biểu diễn. Có 2 trường hợp:
• Số nguyên không dấu (Unsigned)
• Số nguyên có dấu (Signed)
28
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số nguyên không dấu (Unsigned)
• Là một dãy bít 1 byte biễu diễn các giá trị từ 0-->255
• Biểu diễn số nguyên lớn thì ghép các byte: 2 byte, 4 byte,…
• Dạng tổng quát:
A an1...a1a0
A an1 2n1... a1 21 a0 20
n1
A ai 2i
i0
29
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số nguyên không dấu (Unsigned)
• Dải biểu diễn
• n =8 bit : dải biểu diễn là: [0, 255]
• n =16 bit : dải biểu diễn là: [0,65535]
• n =32 bit : dải biểu diễn là:
32
• n =64 bit : dải biểu diễn là: [0, 2 - 1]
[0, 264 - 1]
30
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số nguyên không dấu (Unsigned)
• Ví dụ:
• 1. Biểu diễn số nguyên không dấu A = 44 bằng 8 bit:
A = 44 32 8 4 25 23 22
A=
0010 1100 (2)
• 27 26 23 22 128 64 8 4 204
31
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Số bù hai
• Cho 1 số nguyên nhị phân được biểu diễn bởi n bit. Khi đó:
• Số bù một của A: đảo ngược tất cả các bit của A
• Số bù hai của A : số bù một của A cộng 1
• Biểu diễn số âm bằng số bù 2
32
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số nguyên có dấu (Signed)
• Số dương
• 1 biểu diễn số âm
• 1 byte (8 bit) biểu diễn các giá trị từ -128 ---> 127
33
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số nguyên có dấu (Signed)
• Nguyên tắc tổng quát: A an1...a1a0
• Với A là số dương: bit an1 0 , các bit còn lại biểu diễn độ lớn như
số nguyên không dấu
• Với A là số âm: được biểu diễn bằng số bù hai của số dương tương ứng,
vói bit
an1 1
34
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số nguyên có dấu (Signed)
• Biểu diễn số dương A
A 0an2 ...a1a0
• Giá trị số dương A trong hệ thập phân:
n2
A a i 2i
i 0
35
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số nguyên có dấu (Signed)
• Biểu diễn số dương A
A 0an2 ...a1a0
• Giá trị số dương A trong hệ thập phân:
n2
n1
A 2 a i 2i
i 0
• Dải biểu diễn cho số âm: từ -1 đến
2n-1
36
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số nguyên có dấu (Signed)
• A= - 60 (10)
• B= 58 (10)
37
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số thực
• Để biểu diễn số thực, trong máy tính người ta thường dùng dấu chấm
động (Floating Point Number) :
• N M * RE
• M là phần định trị (Mantissa)
• R là cơ số (Radix)
• E là phần mũ (Exponent)
R -1 | F | 1
38
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số thực
• Chuẩn IEEE:
• Cơ số X = 2
• Các dạng: độ chính đơn 32 bit và kép 64 bit
• Các qui ước
31 30 23 22 0
S E 11bit f 52 bit
63 62 52 51 0
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số thực
• Ví dụ: Xác định giá trị thập phân của số thực A được biểu diễn bằng
32-bit như sau:
A 1100 0001 0 101 0110 0000 0000 0000 0000
A -1 * 2(130-127) * 1.101011
40
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn số thực
• Ví dụ: Biểu diễn các số thực sau đây về dạng số dấu phẩy động
chuẩn IEEE 32-bit: A = - 27.625
27 16 8 2 1 11011 (2)
27.625 11011.101 (2) 1.1011101*2 4
0.625
s=1 0.5 0.125
vì là số âm 0.101 (2)
f=1011101
E - 127 4 E 131 10000011 (2)
41
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Cộng số nguyên không dấu
• Khi cộng hai số nguyên không dấu n-bit, kết quả nhận được là n-bit:
• Nếu C 0 : nhận được kết quả đúng.
out
• Nếu : nhận được kết quả sai, do tràn nhớ ra ngoài (Carry
Out).Cout 1
n
• Tràn nhớ ra ngoài khi: kết quả > – 1)
(2
42
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Cộng số nguyên không dấu
• Ví dụ
53 0011 0101
+38 + 0010 0110
91 0101 1011 91 đúng
43
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Phép trừ hai số nguyên
• Phép trừ hai số nguyên X−Y=X+(−Y)
• Lấy bù hai của Y để được –Y, rồi cộng với X
• Thực hiện như cộng số nguyên
44
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nhân số nguyên không dấu
• Thực hiện phép nhân như trong hệ thập phân
• Nếu bit của số nhân bằng 0 thì tích bằng 0.
• Nếu bit của số nhân bằng 1 thì tích riêng phần bằng số bị nhân
• Nhân hai số nguyên n-bit, tích có độ dài 2n bit
45
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nhân số nguyên có dấu
• Chuyển đổi số bị nhân và số nhân thành số dương tương ứng
• Nhân hai số dương như nhân số nguyên không dấu, nhận được tích
của hai số dương.
• Hiệu chỉnh dấu của tích:
• Nếu hai thừa số ban đầu cùng dấu thì giữ nguyên kết quả
• Nếu hai thừa số ban đầu là khác dấu thì đảo dấu kết quả (lấy bù hai)
46
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chia số nguyên không dấu và có dấu
• Chia số nguyên không dấu
• Thực hiện chia thông thường như chia hai số thập phân
• Chia số nguyên có dấu
• Chuyển đổi số bị chia và số chia về thành số dương tương ứng
• Thực hiện phép chia số nguyên không dấu để chia hai số dương, kết quả
nhận được là thương và phần dư đều là dương
• Hiệu chỉnh dấu của kết quả như sau:
47
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các phép số học lên số thực
• Các phép số học lên số thực
X1 = M1× R E1 X 2 = M 2 × R E2
X1 ÷ X 2 = (M1 ÷ M 2 )× R E1 -E2
X1 ± X 2 = (M1× R E1 -E 2 ± M 2 )× R E2 , E 2 ³ E1
48
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các phép số học lên số thực
49
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn ký tự
• Các ký tự cũng cần được chuyển đổi thành chuỗi bit nhị phân gọi là
mã ký tự.
• Số bit dùng cho mỗi ký tự theo các mã khác nhau là khác nhau.
• Ví dụ
• Bộ mã ASCII dùng 8 bit cho 1 ký tự
• Bộ mã Unicode dùng 16 bit
50
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn ký tự
• Bộ mã ASCII
• Do ANSI (American National Standard Institute) thiết kế
• ASCII là bộ mã được dùng để trao đổi thông tin chuẩn của Mỹ.
• Lúc đầu chỉ dùng 7 bit (128 ký tự) sau đó mở rộng cho 8 bit và có thể
biểu diễn 256 ký tự khác nhau trong máy tính
• Bộ mã 8 bit : mã hóa được cho 256 kí tự, có mã từ
• 128 ký tự chuẩn
0016 FF16 ,
• 128 ký tự mở rộng
51
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn ký tự
• Ký tự chuẩn – Bộ mã ASCII Do ANSI (American National Standard
Institute) thiết kế
• 95 kí tự hiển thị
• Chữ cái hoa Latin A ÷ Z
• 26 chữ cái thường Latin a ÷ z
• 10 chữ số thập phân 0 ÷ 9)
• Các dấu câu: . , ? ! : ; …
• Các dấu phép toán: + - * / …
• Một số kí tự thông dụng: #, $, &, @, ...
• 33 mã điều khiển: dùng để mã hóa cho các chức năng điều khiển
52
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn ký tự
• Bộ mã ASCII (ký tự chuẩn)
53
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Biểu diễn ký tự
• Ký tự mở rộng – Bộ mã ASCII
• Được định nghĩa bởi nhà chế tạo máy tính hay nhà phát triển
phần mềm
• Bộ mã ký tự mở rộng của IBM: được dùng trên máy tính IBM-
PC.
• Bộ mã ký tự mở rộng của Apple: được dùng trên máy tính
Macintosh.
• Các nhà phát triển phần mềm tiếng Việt cũng đã thay đổi phần
này để - mã hoá cho các ký tự riêng của chữ Việt, ví dụ như
bộ mã TCVN 5712.
• Bộ mã Unicode
• Do các hãng máy tính hàng đầu thiết kế
• Là bộ mã 16-bit
• Được thiết kế cho đa ngôn ngữ, trong đó có tiếng Việt.
54
CuuDuongThanCong.com https://fb.com/tailieudientucntt
HẾT CHƯƠNG 2
55
CuuDuongThanCong.com https://fb.com/tailieudientucntt