2. Các phép toán cộng trừ số
có- dấu:
Thực hiện giống như số không
dấu.
- Thực hiện trên toán hạng có cùng
chiều dài bit,
và kết
quả
- Kết quả đúng nếu nằm trong
phạm
vi
cũng
có cùng
sốdấu.
bit
biểu diễn
số có
(nếu kết quả sai thì cần
:
1
0 1 dài bit)
:
111
mở rộng
chiều
+- 6 0
+3 :
-3 1
:
+ 4 : 10
+
0
: 0
+5
-7
1
:
001
110
10
101
0 0(Kq
1
sai)
+- 2 0
101
-5 :
-7 1 100
0: 0 1 1
0
00010
1 0 1 0 0: + 9(Kq
1
đúng)
1
Tràn (overflow) xảy ra khi số nhớ Cin và Cout tại vị trí dấu là khác nhau.
:
--6 0
-2 :
-4 0
:
0
101
111
110
-7 : 100
1
: 0101
+5
+4
0 1 0(Kq
0
sai)
:
2
-5
+7
:
+
:
0
:
1
1
1100
10010
1 1 0 1 0: 12
0
001
101
011
(Kq
đúng)
2
Trừ với số
bù_2:
A – B = A + Bù_2
(B)
* Trừ với số có dấu
101
-6 :
:
110
-3 0
1
-3 :
bù_
2:
+
1
1010
0011
110
3
Một số khái niệm tổng quát về số bù:
1. Bù cơ số trừ 1
Cho trước 1 số N gồm n ký số trong hệ cơ số r, bù cơ số trừ 1 của N
được định nghĩa là rn – 1 – N.
Số N và bù cơ số trừ 1 của N phải có cùng ký số.
Ví dụ:
Xét số 123D
- N = 123, n = 3, r = 10.
- Bù 9 (bù cơ số trừ 1) của 123D là:
rn
-1
-N
103
-1
- 123
= 999 – 123 = 876D
-Tương tự, bù 1 của 1100B là:
24 – 1 – 1100B
15
-
= 1111B – 1100B
1
1
1
1
1
0
1
0
0
0
1
1
Nhận xét
-Để tính bù 9 của một số thập phân ta lấy 9 trừ đi cho từng ký số.
Ví dụ: bù 9 của 2468D là 7531D
-Để tính bù 1 của một số nhị phân, ta chỉ việc đổi bit 1 thành bit 0
và ngược lại.
Ví dụ: bù 1 của 10110B là 01001B.
2. Bù cơ số
Cho trước một số N, gồm n ký số trong hệ cơ số r, bù cơ số của N được
định nghĩa là:
rn – N
với N ≠ 0
0
với N = 0
Ví dụ:
-Bù 10 của 321D là 103 – 321D = 1000D – 321D = 679D.
-Bù 2 của 10101B là 25 – 10101B = 100000B – 10101B =01011B.
-Bù 16 của 2CH là 162 – 2CH = 100H – 2CH = D4H.
Nhận xét
Bù cơ số của một số được suy ra từ bù cơ số trừ 1 bằng cách cộng thêm 1.
IV. Cộng trừ số BCD:
Cộng
Trừ
+
S= A+B
D=A–B
= A + Bù_9
(B)
Nếu decade Si > 9
hoặc có bit nhớ Ci = 1
thì hiệu đính Si: Si = Si + 0110 (6D)
Nếu decade Di > 9
hoặc Ci = 1
thì hiệu đính Di:
Di = Di + 0110 (6D)
Cn = 1: kết
quả D là
số dương
D=D+1
Cn = 0: kết
quả D là
Cn là bit nhớ tạo ra từ decade cao nhất, Ci là số nhớ tạo1ra từ decade
thứ i
số âm
: 0010 1
: 0 0 1 0 Lấy
1 bù_9
(D)
29
28
:0 0 1 0 1
55
10111
10
11
0000
84 :
0
11
01
01
+
:0 0 0 0 1
19
00100
01
10100
47 :
1
00
01
01
8
: 0010
- 29 :0 0 1
001
14
100
Kết
quả:
1
0
+
15
0010
000
01
Bù 9 0 1
+
11
00
110
10
+
0110
1
0
11
0
D0 , D 1 >
9
1 1 01
0001
1
+0 0
Cn =1
1
0001
101
0
=
0
15
: 0101
- 56 :1 1
00 01
18
000
Kết
quả:
0
1
+
38
0101
Bù 9 1 1 0 0 0
+
01
0101
11
+ 0110
0011
Cn =1
11
+
010 1 1
00
0
0
01
D1> 9
01
=
10
38
: 0010
- 21 :0 0 1 0 1
55
101
Kết
quả:
0
0
0010
Bù 9 0 0 1 0 0
+
101
010
Cn =0
01
0
0
01
Bù 9
34
34 :
0011
00
01
11
: 0010
- 29 :0 0 1 0 1
55
101
Kết
quả:
1
0
26
0010
Bù 9 0 0 1 0 0
+
101
010
01
+
10111
Cn =0
11
26 :
1
0
11
D0 > 9
01
00
Bù 9
0010
10
01
12
: 0001
- 16 :1 1
00
100
40
000
Kết
quả:
0
0
24
0001
101
10
Bù 9 1 0
+
00110
11
+
10111
Cn =0
01
24 :
0
1
11
D0 > 9
01
01
Bù 9
0010
00
01
13
: 0001
- 18 :0 0 0
100
40
000
Kết
quả:
1
0
22
0001
101
Bù 9 0 0 0
+
00111
01
+
10111
Cn =0
11
22 :
1
1
00
C1 = 1
01
01
Bù 9
0010
10
00
14