Bài giảng Kiến trúc máy tính và hợp ngữ - Chương 02: Biểu diễn số nguyên - Lê Quốc Hòa

Đặ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 () ...)

pdf 45 trang xuanthi 28/12/2022 1100
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 và hợp ngữ - Chương 02: Biểu diễn số nguyên - Lê Quốc Hòa", để 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_va_hop_ngu_chuong_02_bieu_dien.pdf

Nội dung text: Bài giảng Kiến trúc máy tính và hợp ngữ - Chương 02: Biểu diễn số nguyên - Lê Quốc Hòa

  1. • 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: n 1 1 0 xn 1 x1x0 xn 1.q x1.q x0.q (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
  2. • 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 bit hiển dấu vào đầu là 0 vào – 7 : 2 = 3 dư 1 Kết quả cuối cùng: 01111011 – 3 : 2 = 1 dư 1 – 1 : 2 = 0 dư 1 4
  3. • Khai triển biểu diễn và tính giá trị biểu thức n 1 1 0 xn 1 x1x0 xn 1.2 x1.2 x0.2 • Ví dụ: 3 2 1 0 10112 = 1.2 + 0.2 + 1.2 + 1.2 = 1110 6
  4. • 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 0001 5 0101 9 1001 D 1101 2 0010 6 0110 A 1010 E 1110 3 0011 7 0111 B 1011 F 1111 • Ví dụ: 4B16 = 10010112 8
  5. x x x x .2n 1 x .21 x .20 n 1 1 0 n 1 1 0 • Đượ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
  6. • Đặ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) 8 – Số nguyên không dấu 1 byte lớn nhất là 1111 11112 = 2 – 1 = 25510 16 – Số nguyên không dấu 1 word lớn nhất là 1111 1111 1111 11112 = 2 – 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
  7. • 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
  8. • 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
  9. • (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
  10. • 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
  11. • Nhận xét – Bit MSB = 0 thì giá trị có dấu bằng giá trị không dấu. – Bit MSB = 1 thì giá trị có dấu bằng giá trị không dấu trừ đi 256 (28 nếu tính theo byte) hay 65536 (216 nếu tính theo word). • Tính giá trị không dấu và có dấu của 1 số? – Ví dụ số word (16 bit): 1100 1100 1111 0000 – Giá trị không dấu = 52464 – Giá trị có dấu: vì bit MSB = 1 nên giá trị có dấu = 52464 – 65536 = –13072 24
  12. AND 0 1 OR 0 1 XOR 0 1 NOT 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 “Phép phủ định” “Phép nhân” “Phép cộng” “Phép so sánh khác” 26
  13. • x SHL y = x . 2y • x SHR y = x / 2y • AND dùng để tắt bit (AND với 0 luôn = 0) • OR dùng để bật bit (OR với 1 luôn = 1) • XOR, NOT dùng để đảo bit (XOR với 1 = đảo bit đó) • x AND 0 = 0 • x XOR x = 0 • Mở rộng: – Lấy giá trị tại bit thứ i của x: (x SHR i) AND 1 – Gán giá trị 1 tại bit thứ i của x: (1 SHL i) OR x – Gán giá trị 0 tại bit thứ i của x: NOT(1 SHL i) AND x – Đảo bit thứ i của x: (1 SHL i) XOR x 28
  14. • Nguyên tắc cơ bản: 0 1 0 0 1 1 1 10 1 • Ví dụ: 1 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 30
  15. • Nguyên tắc cơ bản: Đưa về phép cộng A – B = A + (-B) = A + (số bù 2 của B) • Ví dụ: 11101 – 10011 = 11101 + 01101 1 1 1 1 0 1 10 01 01 0 1 1 0 1 0 1 0 32
  16. • Nguyên tắc cơ bản: 0 1 0 0 0 1 0 1 34
  17. • International System of Units (SI) • Chú ý: khi nói “kilobyte” chúng ta nghĩ là 1024 byte nhưng thực ra nó là 1000 bytes theo chuẩn SI, 1024 bytes là kibibyte (IEC) • Hiện nay chỉ có các nhà sản xuất đĩa cứng và viễn thông mới dùng chuẩn SI – 30 GB 30 * 109 ~ 28 * 230 bytes – 1 Mbit/s 106 b/s 44