Bài tập phép toán số nguyên kiến trúc máy tính uit có đáp án

11 1.1K 1
Bài tập phép toán số nguyên kiến trúc máy tính uit có đáp án

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bảng 1: Bài số Cho bảng sau với số viết hệ thập phân A a 69 01000101 b 102 01100110 c 200 11001000 d 247 11110111 B 90 44 103 237 01011010 00101100 01100111 11101101 Giả sử A B số dùng bit lưu trữ, theo dạng số có dấu dùng bù hai Tính A + B Giả sử A B số dùng bit lưu trữ, theo dạng số có dấu dùng bù hai Tính A − B Giả sử A B số dùng bit lưu trữ, theo dạng số khơng dấu Tính A + B (chỉ tính cho c d) Đáp án: a A = 69(10) = 0100 0101 B = 90(10) = 0101 1010 A+B= 1001 1111 – overflow (do cộng hai số dương mà tổng số âm – tương ứng hàng bảng 1=> tràn) Vậy: A + B = 127(10) bị tràn (Kiểm chứng lại: 69(10) + 90(10) = 159(10) mà giá trị dương lớn số có dấu dùng bits bù 127, rõ ràng phép toàn bị tràn số) b A = 102(10) = 0110 0110 B = 44(10) = 0010 1100 A + B = 1001 0010 – overflow (do cộng hai số dương mà tổng số âm => tràn) Vậy A + B = 127(10) bị tràn (Kiểm chứng lại: 102(10) + 44(10) = 146 mà giá trị dương lớn số có dấu dùng bits bù 127, rõ ràng phép toàn bị tràn số) c A = 200(10) = 1100 1000 B = 103(10) = 0110 0111 A + B = 0010 1111 (Tổng số dương số âm không xảy tràn) Vậy A + B = 0010 1111= 47(10) (Kiểm chứng lại: A = 1100 1000 = −56(10) B = 0110 0111 = 103(10) A + B = −56(10) + 103(10) = 47(10)) Lưu ý: Có thể bị hiểu lầm A = 200(10) B = 103(10) A + B = 47(10) lại A =200(10) cách viết (thay cho chuỗi số 0, cụ thể, đề dùng hệ 10 hệ khác để biểu diễn), chuỗi số đưa vào máy tính có giới hạn biểu diễn bit xét dấu, máy tính hiểu A = -56(10) nên A + B = -56(10) + 103(10) = 47(10) d A = 247 = 1111 0111 B = 237 = 1110 1101 A + B = 1110 0100 (Tổng số âm kết số âm => không xảy tràn số) Vậy A + B = 1110 0100 = −28 (Kiểm chứng lại: A = 1111 0111= −9(10) B = 1110 1101= −19(10) A + B = −9 + (−19) = −28(10)) a A = 69(10) = 01000101 B = 90(10) = 01011010 Bù B = 10100110 A – B = A + bù B = 1110 1011 (Phép trừ hai số dương, tức tổng số dương số âm khơng bị tràn) Vậy A – B = 11101011 = −21(10) (Kiểm chứng lại: 69(10) − 90(10) = −21(10)) b A = 102(10) = 0110 0110 B = 44(10) = 00101100 Bù B = 1101 0100 A – B = A + bù B = 0011 1010 Phép trừ hai số dương, tức tổng số dương số âm không bị tràn) Vậy A – B = 0011 1010 = 58(10) (Kiểm chứng lại: 102(10) − 44(10) = 58(10)) c A = 200(10) = 1100 1000 B = 103(10) = 0110 0111 Bù B = 1001 1001 A – B = A + bù B = 0110 0001 => overflow (Do phép toán trừ số âm trừ số dương, hay phép toán cộng hai số âm, mà tổng lại số dương, tương ứng với hàng thứ hàng thứ bảng => overflow) Vậy A – B = −128 (Kiểm chứng lại: A = 11001000 = -56(10) B = 01100111 = 103(10) A – B = −56 – 103 = − 159(10) mà giá trị âm nhỏ số có dấu bit bù −128, nên phép toán bị tràn) d A = 247(10) = 1111 0111 B = 237(10) = 1110 1101 Bù hai B = 0001 0011 A – B = A + bù B = 0000 1010 (Đây phép toán trừ số âm cho số âm, tức phép toán cộng số âm số dương => chắn không bị tràn) Vậy A + B = 0000 1010 = 10(10) (Kiểm chứng lại: A = 1111 01112 = −9 (10) B = 1110 11012 = −19(10) A – B = −9 – (−19) = 10(10)) a A = 69(10) = 0100 0101 B = 90(10) = 0101 1010 A + B = 1001 1111 ,không bị tràn Vậy: A + B = 1001 1111 = 159(10) (Kiểm chứng lại: 69 + 90 = 159(10) tầm giá trị số không dấu bits từ tới 255 nên phép tốn khơng bị tràn) b A = 102(10) = 0110 0110 B = 44(10) = 0010 1100 A + B = 1001 0010 , không bị tràn Vậy A + B = 1001 0010 = 146(10) (Kiểm chứng lại: 102 + 44 = 146(10) tầm giá trị số không dấu bits từ tới 255 nên phép tốn khơng bị tràn) c A = 200(10) = 1100 1000 B = 103(10) = 0110 0111 A+B = 0010 1111 => overflow Vậy A + B = 255(10) bị tràn (Kiểm chứng lại 200 + 103 = 303(10), mà giá trị lớn số không dấu bit 255, nên rõ ràng phép toán bị tràn số) d A = 247 = 1111 0111 B = 237 = 1110 1101 A + B = 1110 0100 => overflow Vậy A + B = 255(10) bị tràn (Kiểm chứng lại 247 + 237 = 484(10), mà giá trị lớn số không dấu bit 255, nên rõ ràng phép toán bị tràn số) Bài số Cho số bảng sau (dùng cho câu 2) a 50(8) 23(8) b 66(8) 04(8) Giả sử số biểu diễn theo kiểu không dấu bit, tính tốn phép nhân A B theo cấu trúc phần cứng hình Hình Giả sử số biểu diễn theo kiểu không dấu bit, tính tốn phép nhân A B theo cấu trúc phần cứng hình Hình Cho số bảng sau (dùng cho câu 4) a 54 110110(2) 67 101100(2) b 30 30(8) 07 07(8) Giả sử số biểu diễn theo kiểu có dấu bit, tính tốn phép nhân A B theo cấu trúc phần cứng hình Giả sử số biểu diễn theo kiểu có dấu bit, tính toán phép nhân A B theo cấu trúc phần cứng hình Đáp án: a A = 50(8) = 101000 B = 23(8) = 010011 Iteration Step Initial values 1.1a: 1 Prod = Prod + Mcand 2: Shift left Multiplicand 3: Shift right Multiplier 1.1a: 1 Prod = Prod + Mcand 2: Shift left Multiplicand 3: Shift right Multiplier 1:  No operation 2: Shift left Multiplicand 3: Shift right Multiplier 1:  No operation 2: Shift left Multiplicand 3: Shift right Multiplier 1.1a: 1 Prod = Prod + Mcand 2: Shift left Multiplicand 3: Shift right Multiplier 1:  No operation 2: Shift left Multiplicand 3: Shift right Multiplier Kết quả: A × B = 001011111000 = 1370(8) Multiplier 01 0011 01 0011 01 0011 00 1001 00 1001 00 1001 00 0100 00 0100 00 0100 00 0010 00 0010 00 0010 00 0001 00 0001 00 0001 00 0000 00 0000 00 0000 00 0000 Multiplicand 0000 0010 1000 0000 0010 1000 0000 0101 0000 0000 0101 0000 0000 0101 0000 0000 1010 0000 0000 1010 0000 0000 1010 0000 0001 0100 0000 0001 0100 0000 0001 0100 0000 0010 1000 0000 0010 1000 0000 0010 1000 0000 0101 0000 0000 0101 0000 0000 101 0000 0000 1010 0000 0000 1010 0000 0000 Product 0000 0000 0000 0000 0010 1000 0000 0010 1000 0000 0010 1000 0000 0111 1000 0000 0111 1000 0000 0111 1000 0000 0111 1000 0000 0111 1000 0000 0111 1000 0000 0111 1000 0000 0111 1000 0000 0111 1000 0010 1111 1000 0010 1111 1000 0010 1111 1000 0010 1111 1000 0010 1111 1000 0010 1111 1000 b A = 66(8) = 110110 B = 04(8) = 000100 Iteration Step Multiplier Multiplicand Product Initial values 00 0100 00 0011 0110 0000 0000 0000 1:  No operation 00 0100 00 0110 1100 0000 0000 0000 2: Shift left Multiplicand 00 0010 00 0110 1100 0000 0000 0000 3: Shift right Multiplier 00 0010 00 0110 1100 0000 0000 0000 1:  No operation 00 0010 00 0110 1100 0000 0000 0000 2: Shift left Multiplicand 00 0010 00 1101 1000 0000 0000 0000 3: Shift right Multiplier 00 0001 00 1101 1000 0000 0000 0000 1.1a: 1 Prod = Prod + Mcand 00 0001 00 1101 1000 0000 1101 1000 2: Shift left Multiplicand 00 0001 01 1011 0000 0000 1101 1000 3: Shift right Multiplier 00 0000 01 1011 0000 0000 1101 1000 1:  No operation 00 0000 01 1011 0000 0000 1101 1000 2: Shift left Multiplicand 00 0000 11 0110 0000 0000 1101 1000 3: Shift right Multiplier 00 0000 11 0110 0000 0000 1101 1000 1:  No operation 00 0000 11 0110 0000 0000 1101 1000 2: Shift left Multiplicand 00 0000 10 110 00000 0000 1101 1000 3: Shift right Multiplier 00 0000 10 110 00000 0000 1101 1000 1:  No operation 00 0000 10 110 00000 0000 1101 1000 2: Shift left Multiplicand 00 0000 01 10 000000 0000 1101 1000 3: Shift right Multiplier 00 0000 01 10 000000 0000 1101 1000 Lưu ý: từ lần lặp thứ 4, multiplier 0, dừng, kết Product kể từ không bị thay đổi Kết quả: A × B = 0000 1101 1000= 330(8) a A = 50(8) = 101000 B = 23(8) = 010011 Kết A × B = 001011111000 = 1370(8) b A = 66(8) = 110110 B = 04(8) = 000100 Kết A × B = 000011011000 = 330(8) (Số có dấu bits) a A = 54(8) = 101100  A số âm, bù A = 010100 (A = −24) B = 67(8) = 110111 B số âm, bù B = 001001 (B = −11) Thực phép nhân bù A cho bù B Iteration Step Initial values 1a:  Prod = Prod + Mcand 2: Shift left Multiplicand 3: Shift right Multiplier 1:  No operation 2: Shift left Multiplicand 3: Shift right Multiplier 1:  No operation 2: Shift left Multiplicand 3: Shift right Multiplier 1a:  Prod = Prod + Mcand 2: Shift left Multiplicand 3: Shift right Multiplier 1:  No operation 2: Shift left Multiplicand 3: Shift right Multiplier 1:  No operation 2: Shift left Multiplicand 3: Shift right Multiplier Multiplier 00 1001 00 1001 00 1001 00 0100 00 0100 00 0100 00 0010 00 0010 00 0010 00 0001 00 0001 00 0001 00 0000 00 0000 00 0000 00 0000 00 0000 00 0000 00 0000 Multiplicand 0000 0001 0100 0000 0001 0100 0000 0010 1000 0000 0010 1000 0000 0010 1000 0000 0101 0000 0000 0101 0000 0000 0101 0000 0000 1010 0000 0000 1010 0000 0000 1010 0000 0001 0100 0000 0001 0100 0000 0001 0100 0000 0010 1000 0000 0010 1000 0000 0010 1000 0000 0101 0000 0000 0101 0000 0000 Product 0000 0000 0000 0000 0001 0100 0000 0001 0100 0000 0001 0100 0000 0001 0100 0000 0001 0100 0000 0001 0100 0000 0001 0100 0000 0001 0100 0000 0001 0100 0000 1011 0100 0000 1011 0100 0000 1011 0100 0000 1011 0100 0000 1011 0100 0000 1011 0100 0000 1011 0100 0000 1011 0100 0000 1011 0100 Vậy: Bù A x bù B = 0000 1011 0100 = 264(8)  A × B = 264(8) b A = 30(8) = 011000 => A số dương B = 07(8) = 000111=> B số dương Thực phép nhân A với B số không dấu (sinh viên tự vẽ bảng) Kết quả: A × B = 250(8) a A = 54(8) = 101100  A số âm, bù A = 010100 (A = −24) B = 67(8) = 110111 B số âm, bù B = 001001 (B = −11) Thực phép nhân bù A cho bù B số không dấu Iteration Step Initial values Prod = Prod + Mcand Rshift Prod Lsb =  No operation Rshift Prod Lsb =  No operation Rshift Prod Prod = Prod + Mcand Rshift Prod Lsb =  No operation Rshift Prod Lsb =  No operation Rshift Prod Multiplicand 01 0100 01 0100 01 0100 01 0100 01 0100 01 0100 01 0100 01 0100 01 0100 01 0100 01 0100 01 0100 01 0100 Vậy: Bù A × bù B = 0000101 10100= 264(8)  A × B = 264(8) b 30 × 07 A = 30(8) = 011000 => A số dương B = 07(8) = 000111=> B số dương Thực phép nhân A với B số không dấu Product/Multiplier 000000 001001 010100 001001 001010000100 001010000100 000101000010 000101000010 000010 100001 010110 100001 001011 010000 001011 010000 000101 101000 000101 101000 0000101 10100 Bài số Cho A = 50(16) B = 23(16) Giả sử số biểu diễn theo kiểu không dấu bit, tính tốn phép nhân A B theo cấu trúc phần cứng hình 2 A = 66(16) B = 04(16) Giả sử số biểu diễn theo kiểu khơng dấu bit, tính tốn phép nhân A B theo cấu trúc phần cứng hình Đáp án: A = 5016 = 0101 00002 B = 2316 = 0010 00112 Iteration Step Initial values Prod = Prod + Mcand Shift right Product Prod = Prod + Mcand Shift right Product lsb = 0, no op Shift right Product lsb = 0, no op Shift right Product lsb = 0, no op Multiplicand 0101 0000 0101 0000 0101 0000 0101 0000 0101 0000 0101 0000 0101 0000 0101 0000 0101 0000 0101 0000 Product/ Multiplier 0000 0000 0010 0011 0101 0000 0010 0011 0010 1000 0001 0001 0111 1000 0001 0001 0011 1100 0000 1000 0011 1100 0000 1000 0001 1110 0000 0100 0001 1110 0000 0100 0000 1111 0000 0010 0000 1111 0000 0010 Shift right Product lsb = 0, no op Shift right Product lsb = 0, no op Shift right Product lsb = 0, no op Shift right Product 0101 0000 0101 0000 0101 0000 0101 0000 0101 0000 0101 0000 0101 0000 0000 0111 1000 0001 0101 0111 1000 0001 0010 1011 1100 0000 0010 1011 1100 0000 0001 0101 1110 0000 0001 0101 1110 0000 0000 1010 1111 0000 Vậy A × B = 0000 1010 1111 0000 = AF0(16) A = 6616 = 0110 01102 B = 0416 = 0000 01002 Iteration Step Initial values lsb = 0, no op Shift right Product Prod = Prod + Mcand Shift right Product lsb = 0, no op Shift right Product lsb = 0, no op Shift right Product lsb = 0, no op Shift right Product lsb = 0, no op Shift right Product lsb = 0, no op Shift right Product lsb = 0, no op Shift right Product Multiplicand 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110 Product/ Multiplier 0000 0000 0000 0100 0000 0000 0000 0100 0000 0000 0000 0010 0000 0000 0000 0010 0000 0000 0000 0001 0110 0110 0000 0001 0011 0011 0000 0000 0011 0011 0000 0000 0001 1001 1000 0000 0001 1001 1000 0000 0000 1100 1100 0000 0000 1100 1100 0000 0000 0110 0110 0000 0000 0110 0110 0000 0000 0011 0011 0000 0000 0011 0011 0000 0000 0001 1001 1000 Vậy A × B = 0000 0001 1001 1000 = 198(16) Bài số Thực phép chia khơng dấu A/B theo cấu trúc phần cứng hình, biết máy tính dùng bit biểu diễn số a b A 40 25 40(8) 25(8) B 21 44 21(8) 44(8) Shift left Q bit, Q0 = Lưu ý: câu b, thực A/B, dùng bit, chạy theo giải thuật chia không đúng; dùng lớn bit Sinh viên trả lời câu hỏi sau: - Vì lại khơng đúng? Gợi ý giải pháp để giải trường hợp - Thực lại câu b với hai trường hợp sau: o B = 34 34(8) o B = 44 44(8) A, B dùng số bit để biểu diễn ... Prod + Mcand 2: Shift left Multiplicand 3: Shift right Multiplier 1.1a: 1 Prod = Prod + Mcand 2: Shift left Multiplicand 3: Shift right Multiplier 1:  No operation 2: Shift left Multiplicand 3:... Shift left Multiplicand 3: Shift right Multiplier 1.1a: 1 Prod = Prod + Mcand 2: Shift left Multiplicand 3: Shift right Multiplier 1:  No operation 2: Shift left Multiplicand 3: Shift right... = Prod + Mcand 2: Shift left Multiplicand 3: Shift right Multiplier 1:  No operation 2: Shift left Multiplicand 3: Shift right Multiplier 1:  No operation 2: Shift left Multiplicand 3: Shift

Ngày đăng: 01/05/2020, 19:02

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan