Professional Documents
Culture Documents
Assignment 1
Assignment 1
Assignment 1
ASSIGNMENT 1
INTEGER ARITHMETIC
1
Mục lục
2
1 Thông tin bài tập
Bài tập yêu cầu thực hiện các phép chuyển đổi số giữa hệ nhị phân và hệ thập phần, đồng thời
thực phép toán +, - , *, /, % trên các số nhị phân sử dụng các toán tử trên bit.
Bài tập trên được em thực hiện trên công cụ Visual Studio 2022, với ngôn ngữ C++ version
C++20
Bài toán được em thực hiện với dữ liệu đầu vào nằm trong khoảng [-128; 127] là khoảng có thể
thể hiện được của số nhị phân 8 bit.
3
Với trường hợp này, phép cộng sẽ cho ra kết quả không chính xác do phạm vi kết quả vượt
ngoài 8 bit.
4
Với trường hợp trên, phép trừ sẽ cho ra kết quả không chính xác do phạm vi kết quả vượt
ngoài 8 bit
Trong hai test case trên, trong trường hợp số B là -128, mặc dù em đã cài đặt đúng thuật toán
đã được thể hiện trong slide, nhưng kết quả vẫn bị đảo dấu, em vẫn chưa hiểu được lý do dẫn đến
kết quả sai.
Để giải quyết cấn đề trên, em đã xử lý riêng trường hợp nếu B = -128 thì kết quả sẽ được đổi
lại dấu
5
Trong trường hợp này, mẫu số bằng 0 do đó phép chia không thực hiện được.
6
Test 5: Trường hợp A > 0, B < 0
7
Test 7: Trường hợp A > 0, B > 0
8
3 Tổng kết