Biểu diễn thơng tin
trong máy tính
Trang 1
Nội dung
•
•
•
•
•
•
Các hệ thống số
Biểu diễn số nguyên
Biểu diễn số thực
Biểu diễn ký tự
Biểu diễn các dạng thông tin khác
Biểu diễn chương trình
Trang 2
Các hệ thống số
• Hệ thống số theo phép cộng
– Mỗi ký số có giá trị độc lập khơng lệ thuộc vị trí của ký số.
– Giá trị của con số đuợc tính bằng cách cộng/ trừ giá trị
từng ký số.
– Ví dụ 1: Hệ thống số Hy lạp và La mã
1
2
3
4
5
6
10
11
16
I
II
III
IV
V
VI
X
XI
XVI
20
25
29
50
75
100
500
1000
XX
XXV
XIX
L
LXXV
C
D
M
3
Các hệ thống số
• Ví dụ về số La mã
1.
2.
3.
4.
5.
XXXVI
XL
XVII
DCCLVI
MCMLXIX
• Nhược điểm
–
–
–
–
Khó biểu diễn và tính tóan với các số lớn
Cần nhiều ký số để biểu diễn các số lớn
Không có số khơng và số âm
Khơng nhất qn về quy tắc. VD số 49 biểu diễn bằng
IL (50-1) hay XLIX (40+9)?
4
Các hệ thống số
• Hệ thống số theo phép cộng (tiếp)
– Ví dụ 2: Hệ Ai cập cổ đại
=?
5
Các hệ thống số
• Hệ thống số theo vị trí
– Mỗi vị trí số có giá trị khác nhau tùy theo cơ số
– Ví dụ: Hệ thập phân
Hàng trăm
Hàng chục
Đơn vị
6
3
8
– Ví dụ: Hệ nhị thập phân Mayan
twenties
Units
twenties
units
2 x 20 + 7 =
47
18 x 20 + 5 = 365
6
Các hệ thống số
• Hệ thống số theo vị trí (tiếp)
– Ví dụ: Hệ thống lục thập phân Babylon
sixties
units
3600s
=64
60s
1s
= 3724
7
Các hệ thống số
• Hệ thống số theo vị trí (tiếp)
– Tính giá trị số: dựa theo cơ số và bậc lũy thừa theo vị trí số.
Dùng n ký số trong hệ cơ số B có thể biểu diễn Bn giá trị
khác nhau
– Ví dụ: hệ thập phân với cơ số B=10
• 123,45= 1x102 + 2x101 + 3x100 + 4x10-1 + 5x10-2
– Tổng quát: Một số ở hệ cơ số B gồm n..-m ký số:
anan-1…a1a0a-1…a-(m-1)a-m
Được tính giá trị theo biểu thức:
m
a .B
i
i
i n
8
Các hệ thống số
• Hệ thập phân (decimal)
– Gồm 10 ký số: 0,1,2,3,4,5,6,7,8,9
– Được sử dụng rộng rãi trong đời sống hàng ngày
– Khơng phù hợp với máy tính
• Hệ nhị phân (binary)
– Gồm 2 ký số: 0 và 1
– Mỗi ký số đuợc gọi là bit (binary digit), đơn vị thông
tin nhỏ nhất
– Các bội số : Byte (B), KB, MB, GB, TB, PB, EB,…
– Thích hợp với máy tính
– Khó sử dụng đối với con người
9
Các hệ thống số
• Hệ bát phân (octal)
– Gồm 8 ký số: 0,1,2,3,4,5,6,7
– Là 1 dạng viết gọn của số nhị phân (8=23)
– Sử dụng nhiều trong máy tính và lập trình trước đây
• Hệ thập lục phân (hexa-decimal)
– Gồm 16 ký số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E
và F
– Là 1 dạng viết gọn của số nhị phân (16=24)
– Hiện đang sử dụng rộng rãi trong máy tính và lập trình
10
Các hệ thống số
• Đối
chiếu
giữa các
hệ thống
số
Thập phân
Nhị phân
Bát phân
Thập lục phân
0
0
0
0
1
1
1
1
2
10
2
2
3
11
3
3
4
100
4
4
5
101
5
5
6
110
6
6
7
111
7
7
8
1000
10
8
9
1001
11
9
10
1010
12
A
11
1011
13
B
12
1100
14
C
13
1101
15
D
14
1110
16
E
15
1111
17
F
11
Các hệ thống số
• Qui tắc chuyển đổi giữa các hệ thống số
– Đổi từ số hệ bất kỳ sang hệ thập phân: áp dụng biểu thức
m
a .B
i
i
i n
– Ví dụ 1: Đổi số nhị phân 1101001.1011(2) sang thập phân
1101001.1011(2) =
6 5 4 3 2 1 0 -1 -2 -3 -4
= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4
= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625
= 105.6875(10)
12
Các hệ thống số
• Qui tắc chuyển đổi giữa các hệ thống số (tiếp)
– Ví dụ 2: Đổi các số sau ra thập phân
• 264.36(8)
• CAFE.85(16)
– Đổi từ hệ thập phân sang hệ bất kỳ:
• Qui tắc 1: Đổi phần nguyên riêng và đổi phần thập phân
(lẻ) riêng sau đó ghép lại
• Qui tắc 2: Đổi số nguyên hệ thập phân sang hệ B bằng
cách chia liên tiếp số cần đổi cho B và giữ lại số dư cho
đến khi thương số bằng khơng. Số cần tìm là các số dư
viết theo chiều nguợc lại
13
Các hệ thống số
• Qui tắc chuyển đổi giữa các hệ thống số (tiếp)
– Đổi từ hệ thập phân sang hệ bất kỳ:
• Qui tắc 3: Đổi phần thập phân sang số hệ B bằng cách
nhân liên tiếp phần thập phân cho B và giữ lại phần
nguyên cho đến khi tích số bằng 0 (hoặc đã đủ độ chính
xác). Số cần tìm là các ký số nguyên viết theo chiều
thuận
– Ví dụ đổi 105.6875(10) ra số nhị phân
• Đổi phần nguyên 105 ra nhị phân
• Đổi phần thập phân 0.6875 ra nhị phân
• Ghép kết quả lại
14
Các hệ thống số
• Qui tắc chuyển đổi giữa các hệ thống số (tiếp)
– Ví dụ
• Đổi 105(10) ra nhị phân
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
Kết quả: 105(10) = 1101001(2)
15
Các hệ thống số
• Qui tắc chuyển đổi giữa các hệ thống số (tiếp)
– Ví dụ
• Đổi 0.6875(10) ra nhị phân
0.6875 x 2 = 1.375 phần nguyên = 1
0.375 x 2 = 0.75 phần nguyên = 0
0.75 x 2 = 1.5 phần nguyên = 1
0.5
x 2 = 1.0 phần nguyên = 1
• Kết quả : 0.6875(10)= 0.1011(2)
– Ghép lại: 105.6875(10) = 1101001.1011(2)
16
Các hệ thống số
• Qui tắc chuyển đổi giữa các hệ thống số (tiếp)
– Đổi từ hệ nhị phân sang hệ bát phân và nguợc lại
• Qui tắc: ghép 3 ký số nhị phân đổi ra 1 ký số bát phân (hoặc
nguợc lại).
– Đổi từ hệ nhị phân sang hệ thập lục phân và ngược lại
• Qui tắc: ghép 4 ký số nhị phân đổi ra 1 ký số thập lục phân
(hoặc nguợc lại).
– Ví dụ:
• B3(16) = 1011 0011(2)
• 10 110 011(2) = 263(8)
– Đổi giữa bát phân sang thập lục phân và ngược lại
• Qui tắc: Đổi sang 1 hệ trung gian (thường là nhị phân như ví
17
dụ trên)
Biểu diễn số ngun
• Số ngun khơng dấu
– Ngun tắc tổng quát: Dùng n bit biểu diễn số
nguyên không dấu A:
an-1an-2…a2a1a0
– Giá trị của A được tính như biểu thức sau:
n 1
A ai .2
i
i 0
– Dải biểu diễn của A: từ 0 đến 2n–1
18
Biểu diễn số ngun
• Số ngun khơng dấu (tiếp)
– Ví dụ 1. Biểu diễn các số nguyên không dấu sau
đây bằng 8-bit: A = 41 ; B = 150
– Giải:
• A = 41 = 32 + 8 + 1 = 25 + 23 + 20
41 = 0010 1001
• B = 150 = 128 + 16 + 4 + 2 = 27 + 24 + 22 + 21
150 = 1001 0110
19
Biểu diễn số ngun
• Số ngun khơng dấu (tiếp)
– Ví dụ 2. Cho các số nguyên không dấu M, N được
biểu diễn bằng 8-bit như sau:
• M = 0001 0010
• N = 1011 1001
Xác định giá trị của chúng ?
• Giải:
– M = 0001 0010 = 24 + 21 = 16 + 2 = 18
– N = 1011 1001 = 27 + 25 + 24 + 23 + 20
= 128 + 32 + 16 + 8 + 1 = 185
20
Biểu diễn số ngun
• Số ngun khơng dấu (tiếp)
– Với n = 8 bit
0000 0000 = 0
0000 0001 = 1
0000 0010 = 2
0000 0011 = 3
...
1111 1111 = 255 Biểu diễn được các giá trị từ 0 đến 255
– Chú ý:
1111 1111
+ 0000 0001
1 0000 0000
Vậy: 255 + 1 = 0 ?
do tràn nhớ ra ngoài
21
Biểu diễn số ngun
• Số ngun khơng dấu (tiếp)
– Trục số học với n = 8 bit
– Với n=16 bit
• Dải biểu diễn
0 đến 65.535 (0 – 216-1)
– Với n=32 bit : 0 đến 232-1
– Với n=64 bit : 0 đến 264-1
22
Biểu diễn số ngun
• Số ngun có dấu
– Qui tắc 1: Dùng 1 bit
cao nhất làm bit dấu, các
bit còn lại biểu diễn như
số khơng dấu
• Bit dấu = 0 : số dương
• Bit dấu = 1 : số âm
– Ví dụ số 4 bit
• 1 bit dấu
• 3 bit số nguyên
• Dải biểu diễn -7 … +7
Thập
phân
Nhị
phân
Thập
phân
Nhị
phân
+0
0000
-0
1000
+1
0001
-1
1001
+2
0010
-2
1010
+3
0011
-3
1011
+4
0100
-4
1100
+5
0101
-5
1101
+6
0110
-6
1110
+7
0111
-7
1111
23
Biểu diễn số ngun
• Số ngun có dấu (tiếp)
– Nhược điểm
• Tồn tại 2 số 0: +0 và -0
• Kết quả tính tóan khơng chính xác
• Ví dụ : tính (+4) + (-2)
+4 0100
-2 1010
+2 1110 (-6) kết quả ra -6 chứ không phải +2
– Cách khắc phục: Dùng số bù 2
24
Biểu diễn số ngun
• Số ngun có dấu (tiếp)
– Qui tắc 2: Dùng số bù 2 (two’s-complement) để
biểu diễn số âm.
• [Số bù 2] = [Số bù 1] + 1
• Số bù 1 tính bằng cách đảo các bit 1 0 và 0 1
• Ví dụ tìm số bù 2 của +2
–
–
–
–
Số +2
:
Số bù 1
:
Công thêm 1:
Số bù 2
:
0010
1101 (đảo các bit)
+ 1
1110
25