Tải bản đầy đủ (.pdf) (29 trang)

BIỂU DIỄN THÔNG TIN TRONG MÁY TÍNH (2)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (568.79 KB, 29 trang )

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


×