Cấu trúc máy tính
Chương 2
BIỂU DIỄN DỮ LIỆU
& SỐ HỌC MÁY TÍNH
1
Nội dung chương 2
2.1. C|c hệ đếm cơ bản
2.2. M~ hóa v{ lưu trữ dữ liệu trong m|y tính
2.3. Biểu diễn số nguyên
2.4. C|c phép to|n số học với số nguyên
2.5. Biểu diễn số thực
2.6. Biểu diễn kí tự
2
Các hệ đếm cơ bản
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) → con người sử dụng
Hệ nhị ph}n (Binary System) → m|y tính sử dụng
Hệ mười s|u (Hexadecimal System) → dùng để viết gọn cho
số nhị ph}n
3
Hệ thập phân
Sử dụng 10 chữ số: 0,1,2,3,4,5,6,7,8,9 để biểu diễn số
Dùng n chữ số thập ph}n có thể biểu diễn được 10n gi| trị
nguyên khác nhau:
00...000 = 0
....
99...999 = 10n-1
Giả sử một số A được biểu diễn dưới dạng:
A = an an-1 … a1 a0 . a-1 a-2 … a-m
Gi| trị của A được hiểu như sau:
A an10 n an 110 n 1 ... a1101 a0100 a110 1 ... am10 m
A
n
i
a
10
i
i m
4
Ví dụ
Số thập ph}n 472.38 có gi| trị được hiểu như sau:
472.38 = 4 x 102 + 7 x 101 + 2 x 100 + 3 x 10-1 + 8 x 10-2
5
Mở rộng cho hệ cơ số r (r>1)
Sử dụng r chữ số có gi| trị riêng từ 0 đến r-1 để biểu diễn số
Giả sử có số A được biểu diễn bằng c|c chữ số của hệ đếm theo
cơ số r như sau:
A = an an-1 … a1 a0 . a-1 a-2 … a-m
Gi| trị của A l{:
A an r n an 1r n 1 ... a1r 1 a0 r 0 a1r 1 a2 r 2 ... am r m
A
n
i
a
r
i
i m
Một chuỗi n chữ số của hệ đếm cơ số r sẽ biểu
diễn được rn giá trị nguyên khác nhau.
6
Hệ nhị phân
Sử 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 bit có thể biểu diễn được 2n gi| trị kh|c nhau:
00...000 = 0
...
11...111 = 2n-1
Giả sử có số A được biểu diễn theo hệ nhị ph}n như sau:
A = an an-1 … a1 a0 . a-1 a-2 … a-m
Với ai l{ c|c chữ số nhị ph}n, khi đó gi| trị của A l{:
A an 2 n an 1 2 n 1 ... a1 21 a0 20 a1 2 1 a2 2 2 ... am 2 m
A
n
i
a
2
i
i m
7
Ví dụ
Số nhị ph}n 1101001.1011 có gi| trị được x|c định
như sau:
1101001.1011(2) = 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4
= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625 = 105.6875(10)
8
Đổi số thập phân sang nhị phân
Thực hiện chuyển đổi phần nguyên v{ phần lẻ riêng.
Chuyển đổi phần nguyên:
Cách 1: chia dần số đó cho 2, x|c định c|c phần dư, rồi viết c|c số dư
theo chiều ngược lại.
Ví dụ: chuyển đổi 105(10) sang hệ nhị ph}n ta l{m như sau:
105 : 2 = 52
dư
1
52 : 2 = 26
dư
0
26 : 2 = 13
dư
0
13 : 2 = 6
dư
1
6:2
= 3
dư
0
3:2
= 1
dư
1
1:2
= 0
dư
1
Như vậy, ta có: 105(10) = 1101001(2)
9
Đổi số thập phân sang nhị phân
Chuyển đổi phần ngun (tiếp):
Cách 2: ph}n tích số đó th{nh tổng c|c lũy thừa của 2, sau đó dựa v{o
c|c số mũ để x|c định dạng biểu diễn nhị ph}n.
Ví dụ: 105 = 64 + 32 + 8 + 1 = 26 + 25 + 23 + 20
105(10) = 1101001(2)
Chuyển đổi phần lẻ:
Nh}n phần lẻ với 2 rồi lấy phần nguyên ... Sau đó viết c|c phần nguyên
theo chiều thuận.
Ví dụ: chuyển đổi số 0.6875(10) sang hệ nhị ph}n:
0.6875 x 2
=
1.3750 phần nguyên
0.375
x2
=
0.750
phần nguyên
0.75
x2
=
1.50
phần nguyên
0.5
x2
=
1.0
phần nguyên
Kết quả l{: 0.6875(10) = 0.1011(2)
=
=
=
=
1
0
1
1
10
3. Hệ mười sáu (Hexa)
Sử dụng 16 chữ số, kí hiệu
như sau:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Dùng để viết gọn cho số nhị
phân.
11
Một số ví dụ
Nhị ph}n Hexa: 11 1011 1110 0110.01101(2) = 3BE6.68(16)
Hexa Nhị ph}n: 3E8(16) = 11 1110 1000(2)
Thập ph}n Hexa:
14988 ?
14988 : 16
=
936
dư
936 : 16
=
58
dư
58 : 16
=
3
dư
3 : 16
=
0
dư
Như vậy, ta có: 14988(10) = 3A8C(16)
Hexa Thập ph}n:
12 tức l{ C
8
10 tức l{ A
3
3A8C ?
3A8C (16) = 3 x 163 + 10 x 162 + 8 x 161 +12 x 160
= 12288 + 2560 + 128 + 12 = 14988(10)
12
Chuyển đổi nhanh
105 = 6x16 + 9 = 69(16)= 110 1001
35 = 2x16 + 3 = 23(16) = 10 0011
13
Cộng trừ số Hexa
8A9B
+
37CD
C268
B46E
1AC9
99A5
B7E5
+
2AF9
E2DE
FA9D
2BC5
CED8
B800
+
0FFF
8E9A
3FE2
1234
+
ABCD
4B6D
3FEA
CFFF
+
1FFF
A78D
45FB
879D
+
5DF8
98BA
8A9D
14
Nội dung chương 2
2.1. C|c hệ đếm cơ bản
2.2. M~ hóa v{ lưu trữ dữ liệu trong m|y tính
2.3. Biểu diễn số nguyên
2.4. C|c phép to|n số học với số nguyên
2.5. Biểu diễn số thực
2.6. Biểu diễn kí tự
15
Mã hóa và lưu trữ dữ liệu
1. Nguyên tắc chung về m~ hóa dữ liệu
2. Lưu trữ thơng tin trong bộ nhớ chính
16
1. Nguyên tắc chung về mã hóa dữ liệu
Mọi dữ liệu đưa v{o m|y tính đều phải được m~ hóa
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
17
Nguyên tắc mã hóa dữ liệu
M~ hóa dữ liệu nh}n tạo:
Dữ liệu số nguyên: m~ hóa theo chuẩn qui ước
Dữ liệu số thực: m~ hóa bằng số dấu chấm động
Dữ liệu ký tự: m~ hóa theo bộ m~ ký tự
18
Nguyên tắc mã hóa dữ liệu (tiếp)
M~ hóa dữ liệu tự nhiên:
Phổ biến l{ c|c tín hiệu vật lý như }m thanh, hình ảnh, ...
C|c dữ liệu tự nhiên cần phải được số hóa (digitalized) trước khi đưa
vào trong máy tính.
Sơ đồ m~ hóa v{ t|i tạo tín hiệu vật lý:
19
Độ dài từ dữ liệu
Độ d{i từ dữ liệu:
L{ số bit được sử dụng để m~ hóa loại dữ liệu tương ứng
Trong thực tế, độ d{i từ dữ liệu thường l{ bội số của 8 bit, ví
dụ: 8, 16, 32, 64 bit
1GB = 210 MB = 220 KB = 230 Byte
4GB = 232 Byte
20
2. Lưu trữ thơng tin trong bộ nhớ chính
Bộ nhớ chính thường được tổ chức theo Byte
Độ d{i từ dữ liệu có thể chiếm 1 hoặc nhiều Byte
Cần phải biết thứ tự lưu trữ c|c byte trong bộ nhớ
chính:
Lưu trữ kiểu đầu nhỏ (Little-endian)
Lưu trữ kiểu đầu to (Big-endian)
Little-endian: Byte có ý nghĩa thấp hơn được lưu trữ
trong bộ nhớ ở vị trí có địa chỉ nhỏ hơn.
Big-endian: Byte có ý nghĩa thấp hơn được lưu trữ
trong bộ nhớ ở vị trí có địa chỉ lớn hơn.
21
Ví dụ
Intel 80x86, Pentium: Little-endian
Motorola 680x0, c|c bộ xử lý RISC: Big-endian
Power PC, Itanium: hỗ trợ cả hai (Bi-endian)
22
Bài tập
Dữ liệu 16 bit có gi| trị l{ 5B9D được lưu trữ v{o bộ
nhớ chính tổ chức theo kiểu Little-endian bắt đầu từ
byte nhớ có địa chỉ l{ 1234. H~y x|c định nội dung c|c
byte nhớ chứa lưu trữ dữ liệu đó dưới dạng nhị ph}n.
23
Nội dung chương 2
2.1. C|c hệ đếm cơ bản
2.2. M~ hóa v{ lưu trữ dữ liệu trong m|y tính
2.3. Biểu diễn số nguyên
2.4. C|c phép to|n số học với số nguyên
2.5. Biểu diễn số thực
2.6. Biểu diễn kí tự
24
Biểu diễn số nguyên
1. Số nguyên không dấu
2. Số nguyên có dấu
3. Biểu diễn số nguyên theo m~ BCD
25