BÀI TẬP KIẾN TRÚC MÁY TÍNH1... 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... Biểu diễn các số thực dưới đây bằn
Trang 1BÀ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:
Bit dấu d7=1 thể hiện dấu trừ
Các bit d0d1d2d3d4d5d6 cho giá trị tuyệt đối tương ứng với số nguyên thập phân là: (-1)1*(1*20+0*21+1*22+0*23+1*24+0*25+1*26 )= - 8510
Kết quả: -8510
+ số bù 1:
Số 110101012 lấy số bù 1 ta được: (00101010)2 = +4210
Kết quả: +4210
+ Số bù 2:
Ta có số: 110101012
Lấy số bù 1: 001010102
Sau đó cộng thêm 1: + 000000012
Ta được: 001010112 = +4310
Kết quả: +4310
+ Số thừa K = 128:
8510=128+8510
010101012 = 10000000 + 010101012 = 110101012
Lấy bù 1 của 110101002 ta được: 001010102
Cộng thêm 1: +000000012
Ta được: 001010112 = + 4310
Kết quả: +4310
Họ và tên: Nguyễn Thị Hồng Diễm
MSSV: 1080263
Lớp: Sư Phạm Lý - Tin K34
Trang 22 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 đó: - 6510 =110000012
Kết quả: - 6510 = 110000012
+ Số bù 1:
Kết quả: 101111102
+ Số bù 2:
Ta có số âm: +6510 =010000012
Lấy bù 1: =101111102
Sau đó cộng thêm 1: +000000012
Ta được số dương: -6510 = 101111112
Kết quả: 101111112
+ Số thừa K:
6510=12810+6510 =100000002+010000012=110000012
001111112 Kết quả là : -65 =001111112
Trang 33 Đổ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:
0100102 = 0*20+1*21+0*22+0*23+1*24+0*25 = 1810
Kết quả: 1810
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ả: 105010 = 100000110102
20.875 (sang số nhị phân)
Phần nguyên 2010: 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
⇒ 2010 = 101002
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 1112
.5*2 = 1 1
⇒10100.1112
Kết quả: 10100.1112
-2010 (sang số nhị phân 16 bit)
Thực hiện tương tự ta được: 201010 = 0000 0011 1111 10102
⇒ -201010 = 1000 0011 1111 10102
Kết quả: 1000 0011 1111 10102
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
Trang 4• -11257.125
Giải:
135.75
• Bước 1: Đổi số 135.7510 sang số nhị phân: 135.7510 = 10000111.112
• Bước 2: Chuẩn hóa : = 10000111.112 = 1.0000111112 ×27
= (-1)S × (1.f1f2…f23)×2(E-127) = 0 (1bit)
S = 010
• 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 = 13410 = 100001102 (8 bit)
f = 0000111112 = 000 0111 1100 0000 0000 00002 (23bit)
Kết quả: 0 1000 0110 0000 1111 1000 0000 0000 0002
-581.675
-581.67510 = -1001000101.1012
= -1.001000101101x29
=(-1)S × (1.f1f2…f23)× 2(E-127)
Do -581.675 âm nên S = 110 = 1 (1 bit)
E = 127+9 = 13610 = 100010002 (8 bit)
f =0010 0010 1101 0000 0000 0002 (23 bit)
Kết quả: 1 10001000 0010 0010 1101 0000 0000 0002
1150.6875
1150.687510 = 10001111110.11012 = 1.00011111101101 × 210
= (-1)S ×(1 f1f2…f23)×2(E-127)
S = 010 = 0 (1 bit)
E = 127 + 10 = 13710 = 100010012 (8 bit)
f = 000111111011012 =000111111011010000000002 (23 bit)
Kết quả: 010001001000111111011010000000002
11257.125
11257.12510 = 10101111111001.0012 = 1 01011111110010012×213
= (-1)S × (1 f1f2…f23)×2(E-127)
Do -11257.125 âm nên S = 110 = 1 (1 bit)
E = 127+13=140 = 100011002 (8 bit)
f = 0101111111001001 = 010111111100100100000002 (23 bit)
Kết quả:110001100010111111100100100000002