BIỂU DIỄN THƠNG TIN TRONG MÁY TÍNH (2)
VŨ NGỌC THANH SANG
TRỊNH TẤN ĐẠT
KHOA CƠNG NGHỆ THƠNG TIN
ĐẠI HỌC SÀI GỊN
Email:
Website: />
Nội dung
• Biểu diễn các số ngun có dấu
• Biểu diễn các số ngun khơng dấu
• Biểu diễn số thực
• Các phép tốn cơ bản
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
IV. Số nguyên có dấu (signed integer)
Các phương pháp biểu diễn:
• Dùng dấu và độ lớn (Sign-Magnitude)
• Dùng mã bù 1 (One’s complement)
• Dùng mã bù 2 (Two’s complement)
Nguyên tắc chung
• Dùng n chữ số nhị phân thì biểu diễn được 2n số: - 2n-1 ~ 2n-1 –1
Khoa Công Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
IV. Số nguyên có dấu (signed integer)
Dùng dấu và độ lớn:
• 1 bit cao nhất biểu diễn:
Bit dấu = 0: số dương
Bit dấu = 1: số âm
• Các bit cịn lại biểu diễn giá trị:
Bit dn-1 là bit dấu (bit cao nhất) và các bit từ d0 tới dn-2 cho giá trị tuyệt đối. Một từ
n bit tương ứng với số ngun thập phân có dấu.
dn-1 dn-2 dn-3
…
Bit dấu
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
d2
d1
d0
IV. Số nguyên có dấu (signed integer)
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
• Nhược điểm:
o Tồn tại 2 số 0: + 0 và - 0.
o Kết quả tính tốn khơng chính xác. Ví dụ: tính (+5) + (-2) = (+3) 0011, tuy nhiên 0101 + 1010
= 1111 (-7).
Khoa Công Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
IV. Số nguyên có dấu (signed integer)
Dùng mã bù 1 (One’s complement)
• Số dương biểu diễn dưới dạng nhị phân, số âm biểu diễn số bù 1.
• Tìm số bù 1 (đảo bit 1 → 0, 0 → 1).
• → Có 2 cách biểu diễn số 0: 0000 0000 (+0), 1111 1111 (-0).
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
IV. Số ngun có dấu (signed integer)
Ví dụ (mã bù 1): biểu diễn số bù 1 của A = – 80
Biểu diễn A dạng nhị phân:
+ 80 = 0101 00002
→
– 80 = 1010 11112
Số bù một: 1010 11112
Khoa Công Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
IV. Số nguyên có dấu (signed integer)
Dùng mã bù 2 (Two’s complement)
• Số bù 2 = Số bù 1 + 1
• Một số tính chất của mã bù 2:
✓ Đây là một dạng mã bù mà chắc chắn (+X) + (-X) = 0.
✓ Chỉ có 1 giá trị 0 duy nhất 00….0.
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
IV. Số ngun có dấu (signed integer)
Ví dụ (mã bù 2): biểu diễn số bù 2 của A = – 80
Số bù một của A là: 1010 11112
→ Số bù 2 của A = 1010 1111+1 = 1011 00002
Khoa Công Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
IV. Số ngun có dấu (signed integer)
• Trục số học với n = 8 bit:
-128
-2 -1 0 1 2
Khoa Công Nghệ Thơng Tin – Đại học Sài Gịn
•
+127
Kiến Trúc Máy Tính
Trục số học máy tính:
IV. Số ngun có dấu (signed integer)
•
Với n = 16 bit: –32768 … +32767
•
Với n = 32 bit: –2-31 … +231 –1
•
Với n = 64 bit: –2-63 … +263–1
•
Nhược điểm: Không thể chứa số lớn hơn dải giới hạn (tràn số).
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
V. Số ngun khơng dấu (unsigned integer)
• 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ị A được tính như biểu thức sau:
𝑖
𝐴 = σ𝑛−1
𝑖=0 𝑎𝑖 2
• Dải biểu diễn của A: 0 ÷ 2n – 1
• Ví dụ: Biểu diễn các số nguyên không dấu sau đây bằng 8-bit: A = 54; B = 120
o A = 54 = 32 + 16 + 4 + 2 = 25 + 24 + 22 + 21 = 0011 0110
o B = 120 = 64 + 32 + 16 + 8 = 26 + 25 + 24 + 23 = 0111 1000
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
V. Số ngun khơng dấu (unsigned integer)
• Trục số học với n = 8 bit
0 1 2 3
255
• Trục số học máy tính:
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
VI. Số thực
• Số thực dấu chấm động (floating - point decimal):
o Cho phép thay đổi vị trí dấu chấm thập phân cho phù hợp nhu cầu với độ
chính xác vừa phải.
o Một số thực X có thể biểu diễn khoa học như sau:
𝑋 = (−1)𝑠 ∗ 𝑀 ∗ 𝑅𝐸
Trong đó:
• S (sign): dấu (0: số dương; 1: số âm).
• M (mantissa): phần định trị.
• R (radix): cơ số.
• E (exponent): số mũ
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
VI. Số thực
Ví dụ: Xác định dấu, phần định trị, cơ số và số mũ của các số sau:
• X = -1234.567 = (-1)1* 1234567 * 10-3
S = 1; M = 1234567
R = 10; E = -3
• X = 0.13579 = (-1)0 * 13579 * 10-5
S = 0; M = 13579;
R = 10; E = -5
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
VI. Số thực
Xác định dấu, phần định trị, cơ số và số mũ của các số sau:
• -1130.512
• 0.12345
• 10.125
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
VI. Số thực
• Chuẩn IEEE 754/85:
• Có 3 dạng:
➢ Dạng đơn (single precision): 32 bit
➢ Dạng kép (double precision): 64 bit
➢ Dạng kép mở rộng (double – extended precision): 80 bit
• Cả 3 dạng đều có điểm R = 2.
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
VI. Số thực
• Dạng đơn 32 bit
30
31
0
23 22
S (dấu)
E (phần mũ)
M (phần định trị)
1 bit
8 bit
23 bit
• Khi đó, 1 số thực bất kỳ được biểu diễn:
X = (-1)S * 1, M * 2E-127
• Dải giá trị biểu diễn:
2-127 < | X | < 2127 hay: 10-38 < | X | < 1038
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
VI. Số thực
• Các bước chuyển đổi số thực → IEEE 754/85 (32 bit):
➢ Bước 1: Đổi số thực về dạng nhị phân.
➢ Bước 2: Chuyển dạng nhị phân đổi được về dạng: ±1.aa…a * 2b.
➢ Bước 3: Xác định các giá trị:
❑ S = 0 nếu số dương; S = 1 nếu số âm.
❑ E - 127 = b ➔ E = 127 + b → nhị phân.
❑ M = aa..a00…0
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
VI. Số thực
• Ví dụ: 23.456 → IEEE 754/85
➢ Bước 1: A = 23.45510 = 10111.0112
➢ Bước 2: A = 1.0111011 * 24
➢ Bước 3: Ta có:
❑ S = 0 vì A > 0
❑ E – 127 = 4 → E = 131 = 1000 0011
❑ M = 011 1101 0000 0000 0000 0000
→ A = 0100 0001 1011 1101 0000 0000 0000 0000
→ A = 41 BD 00 0016
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
VI. Số thực
• Ví dụ: Tìm giá trị số thực: C2 0D 00 0016
➢ Ta có: X = C2 0D 00 0016
= 1100 0010 0000 1101 0000 0000 0000 0000
➢S=1→X<0
➢ E = 1000 01002 = 13210 → E – 127 = 5
➢ M = 000 1101 0000 0000 0000 0000
→ X = –1.0001101*25 = –100011.012 = –35,2510
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
Bài tập
Biểu diễn số sau theo chuẩn IEEE 754
• -0.09375
• -232
• 6.8125
Biểu diễn số sau (ở chuẩn IEEE 754) sang thập phân
• 41C8 000
Khoa Cơng Nghệ Thơng Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
VII. Các phép toán cơ bản trên hệ nhị phân
Phép cộng hai số nhị phân
• Khi cộng hai số nguyên khơng dấu n bit:
• Nếu khơng có nhớ ra khỏi bit cao nhất thì tổng ln đúng (Cout = 0).
• Nếu có nhớ ra ngồi (Carry out) thì tổng là sai (Cout = 1), ta nói rằng phép cộng
đã tràn nhớ.
• Tràn nhớ ra ngồi xảy ra khi tổng > 2n – 1
0+0=0
0+1=1
1+0=1
1 + 1 = 0 (nhớ 1 vào số tiếp theo)
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
VII. Các phép toán cơ bản trên hệ nhị phân
Phép cộng hai số nhị phân
Cộng hai số nhị phân:
Cộng hai số thập phân:
11001
25
+
00111
+
7
=
100000
=
32
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính
VII. Các phép toán cơ bản trên hệ nhị phân
Phép trừ hai số nhị phân
0–0=0
0 – 1 = 1 (mượn 1 từ số tiếp theo)
1–0=1
1–1=0
Khoa Công Nghệ Thông Tin – Đại học Sài Gịn
Kiến Trúc Máy Tính