Bài giảng Kiến trúc máy tính - Chương: Biểu diễn số nguyên

1
Môn học: Kiến trúc máy tính  
• Tổng quát số nguyên có n chữ số thuộc hệ cơ số q bất kỳ được biểu diễn:  
xn1...x1x0 xn1.qn1 ...x1.q1 x0.q0  
(mỗi chữ số xi lấy từ tập X có q phần tử)  
• Ví dụ:  
– Hệ cơ số 10: A = 123 = 100 + 20 + 3 = 1.102 + 2.101 + 3.100  
– q = 2, X = {0, 1}: hệ nhị phân (binary)  
– q = 8, X = {0, 1, 2,…, 7}: hệ bát phân (octal)  
– q = 10, X = {0, 1, 2,…, 9}: hệ thập phân (decimal)  
– q = 16, X = {0, 1, 2,…,9, A, B,…, F}: hệ thập lục phân (hexadecimal)  
• Chuyển đổi: A = 123 d = 01111011 b = 173 o = 7B h  
• Hệ cơ số thường được biển diễn trong máy tính là hệ cơ số 2  
2
• Đặc điểm  
– Con người sử dụng hệ thập phân  
– Máy tính sử dụng hệ nhị phân, bát phân, thập lục phân  
• Nhu cầu  
– Chuyển đổi qua lại giữa các hệ đếm ?  
• Hệ khác sang hệ thập phân (... dec)  
• Hệ thập phân sang hệ khác (dec ...)  
• Hệ nhị phân sang hệ khác và ngược lại (bin  …)  
• …  
3
• Lấy số cơ số 10 chia cho 2  
– Số dư đưa vào kết quả  
– Số nguyên đem chia tiếp cho 2  
– Quá trình lặp lại cho đến khi số nguyên = 0  
• Ví dụ: A = 123  
– 123 : 2 = 61 dư 1  
– 61 : 2 = 30 dư 1  
– 30 : 2 = 15 dư 0  
Kết quả: 1111011, vì 123 là số dương, thêm 1  
– 15 : 2 = 7 dư 1  
– 7 : 2 = 3 dư 1  
– 3 : 2 = 1 dư 1  
– 1 : 2 = 0 dư 1  
bit hiển dấu vào đầu là 0 vào  
Kết quả cuối cùng: 01111011  
4
• Lấy số cơ số 10 chia cho 16  
– Số dư đưa vào kết quả  
– Số nguyên đem chia tiếp cho 16  
– Quá trình lặp lại cho đến khi số nguyên = 0  
• Ví dụ: A = 123  
– 123 : 16 = 7 dư 12 (B)  
Kết quả cuối cùng: 7B  
– 7 : 16 = 0 dư 7  
5
• Khai triển biểu diễn và tính giá trị biểu thức  
xn1...x1x0 xn1.2n1 ...x1.21 x0.20  
• Ví dụ:  
10112 = 1.23 + 0.22 + 1.21 + 1.20 = 1110  
6
• Nhóm từng bộ 4 bit trong biểu diễn nhị phân rồi chuyển  
sang ký số tương ứng trong hệ thập lục phân (0000   
0,…, 1111 F)  
• Ví dụ  
10010112 = 0100 1011 = 4B16  
HEX  
BIN  
HEX  
BIN  
HEX  
BIN  
HEX  
BIN  
0
0000  
4
0100  
8
1000  
C`  
1100  
1
2
3
0001  
0010  
0011  
5
6
7
0101  
0110  
0111  
9
A
B
1001  
1010  
1011  
D
E
F
1101  
1110  
1111  
7
• Sử dụng bảng dưới đây để chuyển đổi:  
HEX  
BIN  
HEX  
BIN  
HEX  
BIN  
HEX  
BIN  
0
0000  
4
0100  
8
1000  
C`  
1100  
1
2
3
0001  
0010  
0011  
5
6
7
0101  
0110  
0111  
9
A
B
1001  
1010  
1011  
D
E
F
1101  
1110  
1111  
• Ví dụ:  
4B16 = 10010112  
8
• Khai triển biểu diễn và tính giá trị biểu thức  
xn1...x1x0 xn1.16n1 ...x1.161 x0.160  
• Ví dụ:  
7B16 = 7.161 + 12 (B).160 = 12310  
9
xn1...x1x0 xn1.2n1 ...x1.21 x0.20  
• Được dùng nhiều trong máy tính để biểu diện các giá trị lưu trong  
các thanh ghi hoặc trong các ô nhớ. Thanh ghi hoặc ô nhớ có kích  
thước 1 byte (8 bit) hoặc 1 word (16 bit).  
• n được gọi là chiều dài bit của số đó  
• Bit trái nhất xn-1 là bit có giá trị (nặng) nhất MSB (Most Significant  
Bit)  
• Bit phải nhất x0 là bit có giá trị (nhẹ) nhất LSB (Less Significant Bit)  
10  
• Số nhị phân có thể dùng để biểu diễn bất kỳ việc gì mà bạn muốn!  
• Một số ví dụ:  
– Giá trị logic: 0 False; 1 True  
– Ký tự:  
• 26 ký tự (A Z): 5 bits (25 = 32)  
• Tính cả trường hợp viết hoa/thường + ký tự lạ 7 bits (ASCII)  
• Tất cả các ký tự ngôn ngữ trên thế giới 8, 16, 32 bits (Unicode)  
– Màu sắc: Red (00), Green (01), Blue (11)  
– Vị trí / Địa chỉ: (0, 0, 1)…  
– Bộ nhớ: N bits Lưu được tối đa 2N đối tượng  
11  
• Đặc điểm  
– Biểu diễn các đại lương luôn dương  
• Ví dụ: chiều cao, cân nặng, mã ASCII…  
– Tất cả bit đều được sử dụng để biểu diễn giá trị (không quan tâm đến  
dấu âm, dương)  
– Số nguyên không dấu 1 byte lớn nhất là 1111 11112 = 28 – 1 = 25510  
– Số nguyên không dấu 1 word lớn nhất là 1111 1111 1111 11112 = 216  
– 1 = 6553510  
– Tùy nhu cầu có thể sử dụng số 2, 3… word.  
– LSB = 1 thì số đó là số đó là số lẻ  
12  
Lưu các số dương hoặc âm (số có dấu)  
• Có 4 cách phổ biến:  
– [1] Dấu lượng  
– [2] Bù 1  
– [3] Bù 2  
– [4] Số quá (thừa) K  
Số có dấu trong máy tính được biểu diễn ở dạng số bù 2  
13  
• Bit trái nhất (MSB): bit đánh dấu âm / dương  
– 0: số dương  
– 1: số âm  
• Các bit còn lại: biểu diễn độ lớn của số (hay giá trị tuyệt  
đối của số)  
• Ví dụ:  
– Một byte 8 bit: sẽ có 7 bit (trừ đi bit dấu) dùng để biểu  
diễn giá trị tuyệt đối cho các số có giá trị từ 0000000 (010)  
đến 1111111 (12710)  
Ta có thể biểu diễn các số từ −12710 đến +12710  
– -N và N chỉ khác giá trị bit MSB (bit dấu), phần độ lớn (giá  
trị tuyệt đối) hoàn toàn giống nhau  
14  
• Tương tự như phương pháp [1], bit MSB dùng làm bit dấu  
– 0: Số dương  
– 1: Số âm  
• Các bit còn lại (*) dùng làm độ lớn  
• Số âm: Thực hiện phép đảo bit tất cả các bit của (*)  
• Ví dụ:  
– Dạng bù 1 của 00101011 (43) là 11010100 (−43)  
– Một byte 8 bit: biểu diễn từ −12710 đến +12710  
– Bù 1 có hai dạng biểu diễn cho số 0, bao gồm: 00000000 (+0) và 11111111 (−0)  
(mẫu 8 bit, giống phương pháp [1])  
– Khi thực hiện phép cộng, cũng thực hiện theo quy tắc cộng nhị phân thông thường,  
tuy nhiên, nếu còn phát sinh bit nhớ thì phải tiếp tục cộng bit nhớ này vào kết quả  
vừa thu được  
15  
• Biểu diễn giống như số bù 1 + ta phải cộng thêm số 1  
vào kết quả (dạng nhị phân)  
• Số bù 2 ra đời khi người ta gặp vấn đề với hai phương  
pháp dấu lượng [1] và bù 1 [2], đó là:  
– Có hai cách biểu diễn cho số 0 (+0 và -0) không đồng nhất  
– Bit nhớ phát sinh sau khi đã thực hiện phép tính phải được  
cộng tiếp vào kết quả dễ gây nhầm lẫn  
Phương pháp số bù 2 khắc phục hoàn toàn 2 vấn đề  
đó  
• Ví dụ:  
– Một byte 8 bit: biểu diễn từ −12810 đến +12710 (được  
lợi 1 số vì chỉ có 1 cách biểu diễn số 0)  
16  
Số 5 (8 bit)  
Số bù 1 của 5  
+
0 0 0 0 0 1 0 1  
1 1 1 1 1 0 1 0  
1
Số bù 2 của 5  
+ Số 5  
1 1 1 1 1 0 1 1  
0 0 0 0 0 1 0 1  
Kết quả 1 0 0 0 0 0 0 0 0  
17  
• (Số bù 2 của x) + x = một dãy toàn bit 0 (không tính bit 1 cao nhất  
do vượt quá phạm vi lưu trữ)  
Do đó số bù 2 của x chính là giá trị âm của x hay – x (Còn gọi là  
phép lấy đối)  
• Đổi số thập phân âm –5 sang nhị phân?  
Đổi 5 sang nhị phân rồi lấy số bù 2 của nó  
• Thực hiện phép toán a – b?  
a – b = a + (–b) Cộng với số bù 2 của b.  
18  
Còn gọi là biểu diễn số dịch (biased representation)  
Chọn một số nguyên dương K cho trước làm giá trị dịch  
Biểu diễn số N:  
+N (dương): có được bằng cách lấy K + N, với K được chọn sao cho tổng của K và một số  
âm bất kỳ trong miền giá trị luôn luôn dương  
-N (âm): có được bằng cáck lấy K - N (hay lấy bù hai của số vừa xác định)  
Ví dụ:  
Dùng 1 Byte (8 bit): biểu diễn từ -12810 đến +12710  
Trong hệ 8 bit, biểu diễn N = 25, chọn số thừa k = 128, :  
+2510 = 100110012  
-2510 = 011001112  
Chỉ có một giá trị 0: +0 = 100000002, -0 = 100000002  
19  
• Số bù 2 [3] lưu trữ số có dấu và các phép tính của chúng trên  
máy tính (thường dùng nhất)  
– Không cần thuật toán đặc biệt nào cho các phép tính cộng và tính trừ  
– Giúp phát hiện dễ dàng các trường hợp bị tràn.  
• Dấu lượng [1] / số bù 1 [2] dùng các thuật toán phức tạp và bất  
lợi vì luôn có hai cách biểu diễn của số 0 (+0 và -0)  
• Dấu lượng [1] phép nhân của số có dấu chấm động  
• Số thừa K [4] dùng cho số mũ của các số có dấu chấm động  
20  
Tải về để xem bản đầy đủ
pdf 37 trang yennguyen 19360 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương: Biểu diễn số nguyên", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_bai_bieu_dien_so_nguyen.pdf