CHƯƠNG 2
BIỂU DIỄN DỮ LIỆU
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
2 / 50
NỘI DUNG
I. Thông tin và sự mã hóa thông tin
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
3 / 50
Thông tin và sự mã hóa thông tin
Khái niệm thông tin
Khái niệm về thông
tin gắn liền với sự hiểu biết
một trạng thái cho sẵn trong
nhiều trạng thái có thể có vào
một thời điểm cho trước.
Thông tin về 2 trạng thái có ý nghĩa của hiệu điện thế
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
4 / 50
Thông tin và sự mã hóa thông tin
Lượng thông tin và sự mã hoá thông tin
Thông tin được đo lường bằng đơn vị thông tin mà ta gọi là bit
I = Log2(N)
I: là lượng thông tin tính bằng bit
N: là số trạng thái có thể có
Lượng thông tin có được là bao nhiêu khi biết được một trong 8 trạng thái?
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
5 / 50
Thông tin và sự mã hóa thông tin
Mã hóa dữ liệu
Nguyên tắc chung
Mọi dữ liệu đưa vào máy tính đều phải được mã hoá
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ã hoá theo chuẩn quy ước
Dữ liệu ký tự: mã hoá theo bộ mã ký tự
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
6 / 50
Thông tin và sự mã hóa thông tin
Mã hóa dữ liệu:
Mã hoá và tái tạo tín hiệu tự nhiên
ADC
DAC
TH số
TH số
TH Ltục
TH Ltục
TH V.lý
TH V.lý
MT
Bộ tạo
tín hiệu
Bộ tái tạo
tín hiệu
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
7 / 50
Biểu diễn các số
Khái niệm hệ thống số:
Cơ sở của một hệ thống số định nghĩa phạm vi các giá trị của một chữ số
Dạng biểu diễn tổng quát giá trị của một số
Biểu diễn số 541.23410?
i
n
mi
ik
kbV
∑
−
−=
=
1
V
k
: số cần biểu diễn giá trị
m: Stt của chữ số phần lẻ (từ -1 đến -m)
n-1: Stt của chữ số phần nguyên(từ 0- n-1)
b
i
: giá trị của chữ số thứ I
k: hệ đếm
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
8 / 50
Chuyển đổi giữa các hệ đếm
Hệ đếm cơ số 10 sang hệ đếm cơ số 2
Hệ đếm cơ số 2 sang hệ đếm cơ số 10
Hệ đếm cơ số 16 sang hệ đếm cơ số 2
Hệ đếm cơ số 2 sang hệ đếm cơ số 16
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
9 / 50
Chuyển đổi giữa các hệ đếm
Phương pháp biến đổi một số thập phân sang số nhị phân
23.37510=????2
23.37510=10111.0112
23.2210=????2
1011 1001.101(2)=
185.625
(10)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
10 / 50
Biểu diễn số nguyên
Số nguyên không dấu (unsigned integer)
Số nguyên có dấu (signed integer)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
11 / 50
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 2
n
số
Dải biểu diễn: 0 ÷ 2
n
- 1
Ví dụ:
n = 8 bit: dải biểu diễn:
n = 16 bit: dải biểu diễn:
Cách biểu diễn
Biểu diễn ở dạng nhị phân một cách bình thường
0 ÷ 2
8 -1
, hay 0 ÷ 255
0 ÷ 2
16 - 1
, hay 0 ÷ 65535
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
12 / 50
Số nguyên không dấu
Ví dụ: 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 = 0100 1001
B = 138 = 1000 1010
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
13 / 50
Số nguyên không dấu
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 = 42
D = 1010 0110 = 166
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
14 / 50
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 2
n
số
Dải biểu diễn: - 2
n-1
÷ 2
n-1
– 1
Ví dụ:
n = 8 bit: dải biểu diễn:
n = 16 bit:
Cách biểu diễn:
PP1: Dùng dấu và độ lớn (Sign-Magnitude)
PP2: Dùng mã bù 1 (One’s complement)
PP3: Dùng mã bù 2 (Two’s complement)
- 2
7
÷ 2
7
-1, hay -128 ÷ 127
- 2
15
÷ 2
15
-1 , hay - 32768 ÷ 32767
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
15 / 50
Số nguyên có dấu
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ị
Trong cách này, bit d
n-1
là bit dấu và các bit từ d
0
tới d
n-2
cho giá trị
tuyệt đối. Một từ n bit tương ứng với số nguyên thập phân có dấu.
i
n
i
i
d
dN
n
2)1(
2
0
1
∑
−
=
−
−=
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
16 / 50
Số nguyên có dấu
Một Byte (8 bit) dải biểu diễn của các số có dấu là như thế nào?
Có hai cách biểu diễn số không là 0000 0000 (+0) và 1000 0000 (-0).
Ví dụ:
+23 =????; -23 = ????
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 toán số học
Có đến 2 cách biểu diễn cho số 0 (+0 và -0)
IBM 7090 sử dụng pp 1 biểu diễn số âm
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
17 / 50
Số nguyên có dấu
Dùng mã bù 1
Đối với số dương: biểu diễn dạng nhị phân
Đối với số âm: tìm số bù 1, thêm bit dấu:
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
Đổi số dương tương ứng → nhị phân
Tìm số bù 1 (đảo bit 1 → 0, 0 → 1)
Đặc điểm:
Có 2 cách biểu diễn số 0
0000 0000 (+0)
1111 1111 (-0)
PP này dùng trong máy PDP-1, UNIVAC 1100/2200
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
18 / 50
Số nguyên có dấu
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
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
19 / 50
Số nguyên có dấu
Ví dụ 1: Biểu diễn các số nguyên có dấu sau đây bằng 8 bit:
B = - 92
Giải:
B = - 92 =1010 0100
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
20 / 50
Số nguyên có dấu
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 (bù 2)
Giải:
C = 0110 1010 = + (64 + 32 + 8 + 2) = 106
D = 1100 0011 = - (64 + 2 + 1) = - 67
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
21 / 50
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):
F = 1101 1010
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
22 / 50
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):
F = 1101 1010
Giải:
F = 1101 1010 = -128 + 64 + 16 + 8 + 2 = -38
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
23 / 50
Hãy đưa ra các giá trị từ -128 đến +127 sử dụng 8bit để biểu diễn
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
24 / 50
Chuyển đổi độ dài
Đối với số dương: thêm/bớt số 0 ở phía trước:
+23 = 0001 0111 (8 bit)
+23 = 0000 0000 0001 0111 (16 bit)
Đối với số âm: thêm/bớt số 1 ở phía trước:
-23 = 1110 1001 (8 bit)
-23 = 1111 1111 1110 1001 (16 bit)
BỘ MÔN KỸ THUẬT MÁY TÍNH – KHOA ĐiỆN TỬ
25 / 50
Các phép toán số học
Phép cộng
Phép trừ
Phép nhân
Phép chia