CHƯƠNG 3 : CỔNG LOGIC & MẠCH SỐ
b) Bộ cộng đầy đủ ( Full adder)
4.4 BIỂU DIỄN SỐ CÓ DẤU DÙNG HỆ BÙ 2
Hệ bù 2 của số có dấu được biểu diễn như sau:
• Nếu là số dương, thì giá trị của nó được biểu diễn dưới dạng nhị phân nguyên thủy với bit dấu là 0 ở vị trí MSB.
• Nếu là số âm thì giá trị của nó đưực chuyển sang dạng bù 2, sau đó thêm bit dấu là 1 tại MSB.
0 1 0 1 1 0 1 1 0 1 0 0 1 1
Hệ bù 2 được sử dụng vì như chúng ta sẽ thấy sau này, nó cho phép thực hiện phép trừ cũng như phép cộng. Điều này rất quan trọng vì máy tính dùng chỉ một mạch logic để làm phép cộng cũng như phép trừ, do đó có thể đơn giản phần cứng.
Cách tổng quát để lấy bù 2 của 1 số là:
a) viết số đó dưới dạng nhị phân rồi thêm bit dấu bằng 0. b) nếu là số dương thì giữ nguyên kết quả ở bước a) c) nếu là số âm thì lấy bù 2 tồn bố số có được ở bước a) Ví dụ 1 : Lấy bù 2 của –9 ( 4 bit giá trị và 1 bit dấu)
a) viết 9 dưới dạng số nhị phân với bit dấu bằng không 01001
b) vì số âm nên lấy bù 2 tồn bộ số 01001. Kết quả bằng10111 là bù 2 của – 9.
Biến đổi từ dạng bù 2 về dạng nhị phân nguyên thủy
Lấy bù 2 của số bù 2 sẽ được số nhị phân nguyên thủy. Ví dụ 1: số nhị phân nguyên thủy là 10110
bù 1 của nó là 01001 cộng thêm 1 1 01010 là bù 2 của 10110 lấy bù 2 của 01010 lấy bù 1 của 01010 10101 cộng thêm1 1
10110 là số nhị phân nguyên thủy
Các trường hợp đặc biệt
Khi bit dấu bằng 1 còn tất cả các bit khác đều bằng 0 thì nó tương đương với 2N trong đó N là số bit của phần giá trị. Ví dụ:
1000 = - 23 = -8 10000 = - 24 = - 16 100000 = -25 = - 32
Vùng giá trị mà một số có dấu gồm N+1 bit có thể biểu diễn trong hệ bù 2 là: -2N đến + (2N -1 ) gồm 2N+1 giá trị kể cả giá trị 0.
Decimal value Signed binary
Using 2’s complement Hecxadecimal Equivalent
-8 1000 8 -7 1001 9 -6 1010 A -5 1011 B -4 1100 C -3 1101 D -2 1110 E -1 1111 F +0 0000 0 +1 0001 1 +2 0010 2 +3 0011 3 +4 0100 4 +5 0101 5 +6 0110 6 +7 0111 7 Số bit của số dưới dạng bù 2 có thể là tùy ý, tuy nhiên trong máy tính thường sử dụng 8, 16 hoặc 32 bit (kể cả bit dấu). Ví dụ thanh ghi AX=FFFF là thanh ghi 16 bit. Nó biểu thị cho số –1 trong hệ 10. Thanh ghi BX=7FFF biểu thị số dương 32767 trong hệ 10.
Trong trường hợp biểu diễn có dấu dùng 16 bit thì vùng giá trị các số là từ – 32767d đến +32768d. Các số từ 0000h đến 7FFFh là các số dương.Các số từ 8000h đến FFFFh là các số âm.