Phép trừ số nhị phân dùng số bù 1
Cho hai số dương A và B có n bit (nếu số bit khác nhau, ta thêm số 0 vào , mà không làm thay đổi trị, để cả hai có cùng số bit) a/ - A ≤ B Kết quả A-B là số 0 hoặc âm, phép tính được ...
Cho hai số dương A và B có n bit (nếu số bit khác nhau, ta thêm số 0 vào , mà không làm thay đổi trị, để cả hai có cùng số bit)
a/ - A ≤ B
Kết quả A-Blà số 0 hoặc âm, phép tính được thực hiện như sau:
Tính A - B:
A - B= A-B+2n-1-2n+1
= A+(2n -B-1 ) - 2n+1
= A+(B)1 - 2n+1
= - {2n - [A+(B)1] -1}
= - [A+(B)1]1
Vậy A-Bcó được bằng cách cộng số bù 1 của B vào A rồi lấy bù 1 của tổng và thêm dấu trừ . Như vậy để thực hiện phép tính trừ ta chỉ cần dùng phép cộng và phép đảo
Thí dụ 3 : Tính 1001 - 11010 dùng số bù 1
Ta có A = 01001 (thêm số 0 vào để có 5 bit như số B
B = 11010 ⇒ (B)1 = 00101
A-B= - [A+(B)1]1 = - (01001+00101) =- (01110)1
= - (10001)
Trong hệ thập phân, đây là bài toán 910 - 2610 = -1710
Để thấy dấu trừ được nhận ra như thế nào, ta viết lại phép toán:
Không có số tràn (hay số tràn =0) là dấu hiệu của kết quả âm (hoặc =0) và ta phải lấy bù 1, thêm dấu trừ để đọc kết quả cuối cùng: (01110)1 = - 10001
Thí dụ 4: Tính 10110 - 10110
A = 10110 và B = 10110 ⇒ (B)1 = 01001
Trong phép cộng đầu tiên không có số tràn, kết quả xem như số âm (hoặc =0) lấy bù 1 của kết quả ta được A-B=00000.
b/ - A >B
Kết quả A-Blà số dương, phép tính được thực hiện theo qui tắc sau:
Cộng A với (B) 1 rồi thêm 1 và không quan tâm tới số nhớ cuối cùng
Thí dụ 5: Tính 110101 - 100110 dùng số bù 1
A = 110101 và B = 100110 ⇒ (B)1 = 011001
Bỏ qua số nhớ cuối cùng, ta được kết quả A-B=001111.
Trong hệ thập phân đó là bài toán 5310 - 3810 = 1510.
Trong phép tính có số tràn chứng tỏ kết quả là số dương. Số 1 cộng thêm vào xem như lấy từ số nhớ đem qua.
Tóm lại, để thực hiện bài toán trừ, A-B, ta cộng A với bù 1 của B. Dựa vào sự có mặt hay không của số tràn mà có biện pháp xử lý kết quả:
- Nếu số tràn =0, kết quả là số âm (hoặc =0) , ta phải lấy bù 1 của kết quả và thêm dấu - để đọc.
- Nếu số tràn =1, ta cộng thêm 1 vào để có kết quả cuối cùng (bỏ qua bit tràn) là một số dương.