Bài tập kiến trúc máy tính biểu diễn số nguyên năm 2024

Uploaded by

Tùng Nguyễn

0% found this document useful (0 votes)

73 views

3 pages

Copyright

© © All Rights Reserved

Available Formats

PDF, TXT or read online from Scribd

Share this document

Did you find this document useful?

Is this content inappropriate?

0% found this document useful (0 votes)

73 views3 pages

Bài Tập Ôn Tập Môn Kiến Trúc Máy Tính

Uploaded by

Tùng Nguyễn

Jump to Page

You are on page 1of 3

Search inside document

Reward Your Curiosity

Everything you want to read.

Anytime. Anywhere. Any device.

No Commitment. Cancel anytime.

Bài tập kiến trúc máy tính biểu diễn số nguyên năm 2024

ểu diễn dữ liệu = quy tắc “gắn kết” các khái niệm trong thế giới thật với một dãy số 0 và 1 trong máy tính

  1. 3.1. Khái niệm thông tin
  • Dùng các tín hiệu điện thế
  • Phân thành các vùng khác nhau
  1. 3.2. 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.
  • Lượng thông tin được định nghĩa bởi công thức:
  • I = Log2(N)
  • –Trong đó:
  • •I: là lượng thông tin tính bằng bit
  • •N: là số trạng thái có thể có

–Ví dụ, để biểu diễn một trạng thái trong 8 trạng thái có thể có, ta cần một số bit ứng với một lượng thông tin là:

  • 1. nguyên Phạm Tuấn Sơn [email protected]
  • 2. 10 • A = 123 = 100 + 20 + 3 = 1×102 + 2×101 + 3×100 • Tổng quát số hệ cơ số q Xn-1…X1X0 = Xn-1×qn-1 + … + X1×q1 + X0×q0 Mỗi chữ số Xi lấy từ tập X có q phần tử • 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) A = 123d = 01111011b = 173o = 7Bh 2
  • 3. , X={0,1} • Được dùng nhiều trong máy tính. Tại sao ? • n gọi là chiều dài bit của số đó • Bit trái nhất Xn-1 là bit có giá trị nhất (MSB) • Bit phải nhất X0 là bit ít có giá trị nhất (LSB) • Giá trị thập phân: Xn-1×2n-1 + … + X1×21 + X0×20 Phạm vi biểu diễn: từ 0 đến 2n-1 • Để chuyển đổi sang hệ 16, chỉ cần gom từng nhóm 4 bit từ phải sang trái • Ví dụ: A = 01111011b = 7 B h 3 0000 – 0 1000 – 8 0001 – 1 1001 – 9 0010 – 2 1010 – A 0011 – 3 1011 – B 0100 – 4 1100 – C 0101 – 5 1101 – D 0110 – 6 1110 – E 0111 – 7 1111 – F
  • 4. biễu diễn mọi thứ ! • Ký tự? – 26 ký tự ⇒ 5 bits (25 = 32) – Ký tự hoa/ thường + dấu ⇒ 7 bits (in 8) (“ASCII”) – Bảng mã chuẩn cho tất cả ngôn ngữ trên thế giới ⇒ 8,16,32 bits (“Unicode”) www.unicode.com • Giá trị luận lý (logic)? – 0 ⇒ False, 1 ⇒ True • Màu sắc ? Ví dụ: • Địa chỉ ? Lệnh ? • Bộ nhớ: N bits ⇔ 2N ô nhớ 4 Red (00) Green (01) Blue (11)
  • 5. âm • Số không dấu (unsigned number) • Lượng dấu (sign and magnitude) – Qui định MSB là dấu 0 à + 1 à – • Bù 1 (One’s Complement) – Lấy bit bù 5 00000 00001 01111... 10000 11111... Binary odometer 00000 00001 01111... 100001000111111 ... Binary odometer 00000 00001 01111... 111111111010000 ... Binary odometer 0x00000000 và 0x80000000 ??? 0x00000000 và 0xFFFFFFFF ??? Phạm vi biễu diễn
  • 6. Khắc phục vấn đề có 2 biểu diễn số 0 khác nhau? – 0000 và 1111 ? – Lấy bù rồi cộng thêm 1 • Như số lượng dấu và số bù 1, số bắt đầu bằng 0 là số dương, số bắt đầu bằng 1 là số âm – 000000...xxx : ≥ 0, 111111...xxx : < 0 – 1…1111 là -1, không phải -0 (như số bù 1) • Giá trị thập phân của biểu diễn dạng bù 2 Xn-1×(-2n-1) + Xn-2×(2n-2) + … + X1×21 + X0×20 Phạm vi biểu diễn: từ -2n-1 tới 2n-1 – 1 Ví dụ: 11010110 = -27 + 26 + 24 + 22 + 21 = -42 6
  • 7. bù 2 +123 = 01111011b -123 = 10000101b 0 = 00000000b -1 = 11111111b -2 = 11111110b -3 = 11111101b -127 = 10000001b -128 = 10000000b 7 Đổi dấu: -3 à +3 à -3 x : 1101 b x’: 0010 b +1: 0011 b ()’: 1100 b +1: 1101 b
  • 8. diễn số bù 2 8
  • 9. bù 2 từ biểu diễn n bit thành biểu diễn m bit (với m>n) • Giá trị của các bít từ n+1 tới m là giá trị của MSB –Chuyển giá trị -4 từ biểu diễn16-bit thành biểu diễn 32-bit: 1111 1111 1111 1100two 1111 1111 1111 1111 1111 1111 1111 1100two Sign extension
  • 10. số N=5 bit 10 • Bias cho số N bits là (2N-1-1) • Giá trị = unsigned - bias • 1 số zero • Bao nhiêu số dương? 00000 00001 01111 ... 111111111010000 ... Binary odometer 00000 00001 00010 11111 11110 10000 0111110001 -15-14 -13 1615 2 1 0 . . . . . . 14 11101 13 11100 01110 -1 01110
  • 11. XOR 11
  • 12. bit nào and với 0 sẽ ra 0, and với 1 sẽ ra chính nó. • Phép and được sử dụng để giữ lại giá trị 1 số bít, trong khi xóa tất cả các bit còn lại. Bit nào cần giữ giá trị thì and với 1, bit nào không quan tam thì and với 0. Dãy bit có vai trò này gọi là mặt nạ (mask). – Ví dụ: ‘a’ (61h) 0110 0001 1101 1111 – Kết quả sau khi thực hiện and: ‘A’ (41h) 0100 0001 – Ý nghĩa: chuyển từ ký tự thường sang ký tự hoa Mask (DFh) Sử dụng phép AND
  • 13. phép OR • Nhận xét: bit nào or với 1 sẽ ra 1, or với 0 sẽ ra chính nó. • Phép or được sử dụng để bật lên 1 số bít, trong khi giữa nguyên giá trị tất cả các bit còn lại. Bit nào cần bật lên thì or với 1, bit nào không quan tâm thì or với 0. – Ví dụ: 1 (01h) 0000 0001 0011 0000 – Kết quả sau khi thực hiện or: ‘1’ (31h) 0100 0001 – Ý nghĩa: chuyển từ số sang ký tự số Mask (30h)
  • 14. và phép quay 14 Input Operation Result 01010101 (85) Logical right shift (2 bits) 00010101 (21 = 85/22) 01010101 (85) Logical left shift (1 bit) 10101010 (170 = 85*21) 11101010 (-22) Arithmetic right shift (2 bits) 11111010 -6=(-22)/22 11101010 (-22) Arithmetic left shift (1 bits) 11010100 -44=(-22)*21 10100110 Right rotate (3 bits) 11010100 10100110 Left rotate (3 bits) 00110101
  • 15.
  • 16.
  • 17.
  • 18. số xảy ra khi kết quả phép tính vượt quá độ chính xác giới hạn cho phép (của máy tính). • Dấu hiệu nhận biết tràn số đối với số không dấu: – Nhớ ra 1 bit – Ví dụ (số nguyên không dấu 4-bit): +15 1111 +3 0011 +18 10010 – Nhưng không có chỗ để chứa cả 5 bit nên chỉ chứa kết quả 4 bit 0010, là +2 à sai. • Dấu hiệu nhận biết tràn số đối với số có dấu: – Dương cộng dương ra kết quả âm và âm cộng âm ra kết quả dương – Dương cộng âm và âm cộng dương không bao giờ cho kết quả tràn số • Một số ngôn ngữ có khả năng phát hiện tràn số (Ada), một số không (C) 18
  • 19. Số không dấu 19
  • 20. không dấu 20
  • 21. Số bù 2 • Tại sao ? – Thừa số 2: 1100 ≠ - (23 + 22) (1100 = -22) • Giải pháp 1 – Chuyển thừa số 2 thành số dương – Nhân theo thuật toán nhân không dấu – Nếu khác dấu, đổi dấu • Giải pháp 2 – Thuật toán Booth 21
  • 22. – Ý tưởng 22 Positive 2n + 2n-1 + … + 2n-K = 2n+1 – 2n-K M × (01111010) = M × (26 + 25 + 24 + 23 + 21) = M × (27 - 23 + 22 - 21) Negative X = {111..10xk-1xk-2…x1x0} -2n-1 + 2n-2 + … + 2k+1 + (xk-1 × 2k-1) + … + (x0 × 20)= -2k+1 + (xk-1 × 2k-1) + … + (x0 × 20) M × (11111010) = M × (-27 + 26 + 25 + 24 + 23 + 21) = M × (-23 + 21) = M × (-23 + 22 -21)
  • 23. – Cơ sở thuật toán • Bước 0: A = (0 + (Q-1-Q0).M) • Bước 1: A = (0 + (Q-1-Q0).M + (Q0-Q1).M.2) = M.(Q-1-Q0 + Q0.2-Q1.2) • Bước 2: A = (M.(Q-1-Q0 + Q0.2-Q1.2) + (Q1-Q2).M.22) = M.(Q-1-Q0 + Q0.2-Q1.2 + Q1.22-Q2.22) • Bước 3: A = M.(Q-1-Q0 + Q0.2-Q1.2 + Q1.22-Q2.22 + Q2.23-Q3.23) = M.(Q-1+Q0+Q1.2 + Q2.22-Q3.23) • Bước n-1: A = M.(Q-1+Q0+Q1.2 + Q2.22+Q3.23+…+Qn-2.2n-2-Qn-1.2n-1 Vì Q-1=0 và Qn-1 chính là bit xác định dấu nên phần trong dấu ngoặc chính là Q. Vậy A = M.Q 23
  • 24. – Ví dụ 24
  • 25. Số không dấu 25 Thương (Quotient) Số bị chia (Dividend) Phần dư (Remainder) Kết quả trung gian Partial Remainders Số chia (Divisor)
  • 26. không dấu 26
  • 27. Số bù 2 27 • Thực hiện như phép chia không dấu • Nếu số chia và số bị chia khác dấu à đổi dấu thương
  • 28. trình bày phép nhân 2 số nguyên (-127) × (-5) • Hãy trình bày phép chia 2 số nguyên (-7) / (-3) 28
  • 29. 3, P&H 29