BÀI TẬP KIẾN TRÚC MÁY TÍNH 1. Số nhị phân 8 bit (11010101) tương ứng với số nguyên thập phân có dấu là bao nhiêu trong các phép biểu diễn số có dấu sau đây: • Dấu và trị tuyệt đối. • Số bù 1. • Số bù 2. • Số thừa K=128 Giải: + Dấu và trị tuyệt đối: d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 1 1 0 1 0 1 0 1 Bit dấu d 7 =1 thể hiện dấu trừ. Các bit d 0 d 1 d 2 d 3 d 4 d 5 d 6 cho giá trị tuyệt đối tương ứng với số nguyên thập phân là: (-1) 1 *(1*2 0 +0*2 1 +1*2 2 +0*2 3 +1*2 4 +0*2 5 +1*2 6 )= - 85 10 Kết quả: -85 10 + số bù 1: Số 11010101 2 lấy số bù 1 ta được: (00101010) 2 = +42 10 Kết quả: +42 10 + Số bù 2: Ta có số: 11010101 2 Lấy số bù 1: 00101010 2 Sau đó cộng thêm 1: + 00000001 2 Ta được: 00101011 2 = +43 10 Kết quả: +43 10 + Số thừa K = 128: 85 10 =128+85 10 01010101 2 = 10000000 + 01010101 2 = 11010101 2 Lấy bù 1 của 11010100 2 ta được: 00101010 2 Cộng thêm 1: +00000001 2 Ta được: 00101011 2 = + 43 10 Kết quả: +43 10 Họ và tên: Nguyễn Thị Hồng Diễm MSSV: 1080263 Lớp: Sư Phạm Lý - Tin K34 2. Cho số nguyên -65, biểu diễn số nguyên dưới dạng nhị phân 8 bit trong các phép biểu diễn sau: • Dấu và trị tuyệt đối. • Số bù 1. • Số bù 2. • Số thừa K=128 Giải: + Dấu và trị tuyệt đối: 65/2 = 32 dư 1 32/2 = 16 dư 0 16/2 = 8 dư 0 8/2 = 4 dư 0 4/2 = 2 dư 0 2/2 = 1 dư 0 1/2 = 0 dư 1 Do số âm nên bit dấu có giá trị 1. Do đó: - 65 10 =11000001 2 Kết quả: - 65 10 = 11000001 2 + Số bù 1: Ta có : +65 10 =01000001 2 Lấy bù 1 : -65 10 =10111110 2 Kết quả: 10111110 2 + Số bù 2: Ta có số âm: +65 10 =01000001 2 Lấy bù 1: =10111110 2 Sau đó cộng thêm 1: +00000001 2 Ta được số dương: -65 10 = 10111111 2 Kết quả: 10111111 2 + Số thừa K: 65 10 =128 10 +65 10 =10000000 2 +01000001 2 =11000001 2 Lấy bù 1 : 00111110 2 Cộng 1 : 00000001 2 00111111 2 Kết quả là : -65 =00111111 2 3. Đổi các số sau đây: • 010010 > số thập phân. • 1050 > Số nhị phân. • 20.875 > số nhị phân. • -2010 > số nhị phân 16 bits. Giải: 010010 2 → số thập phân: 010010 2 = 0*2 0 +1*2 1 +0*2 2 +0*2 3 +1*2 4 +0*2 5 = 18 10 Kết quả: 18 10 1050 (sang số nhị phân) 1050/2 = 525 dư 0 16/2 = 8 dư 0 525/2 = 262 dư 1 8/2 = 4 dư 0 262/2 = 131 dư 0 4/2 = 2 dư 0 131/2 = 65 dư 1 2/2 = 1 dư 0 65/2 = 32 dư 1 1/2 = 0 dư 1 32/2 = 16 dư 0 Kết quả: 1050 10 = 10000011010 2 20.875 (sang số nhị phân) Phần nguyên 20 10 : Ta sẽ đổi phần nguyên dùng phương thức số dư: 20/2 = 0 dư 0 10/2 = 5 dư 0 5/2 = 2 dư 1 2/2 = 1 dư 0 1/2 = 0 dư 1 ⇒ 20 10 = 10100 2 Phần lẻ .875: Dùng phương thức nhân biến đổi phần lẻ của số thập phân sang số nhị phân: .875*2 = 1.75 1 .75*2 = 1.5 1 111 2 .5*2 = 1 1 ⇒10100.111 2 Kết quả: 10100.111 2 -2010 (sang số nhị phân 16 bit) Thực hiện tương tự ta được: 2010 10 = 0000 0011 1111 1010 2 ⇒ -2010 10 = 1000 0011 1111 1010 2 Kết quả: 1000 0011 1111 1010 2 4. Biểu diễn các số thực dưới đây bằng số có dấu chấm động chính xác đơn 32 bit. • 135.75 • -581.675 • 1150.6875 • -11257.125 Giải: 135.75 • Bước 1: Đổi số 135.75 10 sang số nhị phân: 135.75 10 = 10000111.11 2 • Bước 2: Chuẩn hóa : = 10000111.11 2 = 1.000011111 2 ×2 7 = (-1) S × (1.f 1 f 2 …f 23 )×2 (E-127) = 0 (1bit) S = 0 10 • Bước 3: Điền các bit vào các trường theo chuẩn: Số dương : Bit dấu S có giá trị 0 Phần mũ E với số thừa K=127, ta có: E - 127= 7 =>E=127+7 = 134 10 = 10000110 2 (8 bit) f = 000011111 2 = 000 0111 1100 0000 0000 0000 2 (23bit) Kết quả: 0 1000 0110 0000 1111 1000 0000 0000 000 2 -581.675 -581.675 10 = -1001000101.101 2 = -1.001000101101x2 9 =(-1) S × (1.f 1 f 2 …f 23 )× 2 (E-127) Do -581.675 âm nên S = 1 10 = 1 (1 bit) E = 127+9 = 136 10 = 10001000 2 (8 bit) f =0010 0010 1101 0000 0000 000 2 (23 bit) Kết quả: 1 10001000 0010 0010 1101 0000 0000 000 2 1150.6875 1150.6875 10 = 10001111110.1101 2 = 1.00011111101101 × 2 10 = (-1) S ×(1. f 1 f 2 …f 23 )×2 (E-127) S = 0 10 = 0 (1 bit) E = 127 + 10 = 137 10 = 10001001 2 (8 bit) f = 00011111101101 2 =00011111101101000000000 2 (23 bit) Kết quả: 01000100100011111101101000000000 2 11257.125 11257.125 10 = 10101111111001.001 2 = 1. 0101111111001001 2 ×2 13 = (-1) S × (1. f 1 f 2 …f 23 )×2 (E-127) Do -11257.125 âm nên S = 1 10 = 1 (1 bit) E = 127+13=140 = 10001100 2 (8 bit) f = 0101111111001001 = 01011111110010010000000 2 (23 bit) Kết quả:11000110001011111110010010000000 2 . +00000001 2 Ta được: 00101011 2 = + 43 10 Kết quả: +43 10 Họ và tên: Nguyễn Thị Hồng Diễm MSSV: 1080263 Lớp: Sư Phạm Lý - Tin K34 2. Cho số nguyên -65, biểu diễn số nguyên dưới dạng nhị phân