1. Trang chủ
  2. » Văn Hóa - Nghệ Thuật

Giáo trình kỹ thuật số ( Chủ biên Võ Thanh Ân ) - Chương 6

7 25 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 457,42 KB

Nội dung

Tuy nhiên, trên phép toán ta thấy phép cộng với phép chia cuối cùng cho kết quả âm (1100), để điều chỉnh ta phải cộng vào số chia và bỏ qua số tràn.. Số nhớ của bài toán cuối cùng (bước[r]

(1)

CHƯƠNG 6: MCH LÀM TOÁN

9 SỐ BÙ

9 PHÉP TOÁN VỚI SỐ BÙ PHÉP TOÁN VỚI SỐ BÙ

9 PHÉP TOÁN VỚI SỐ BÙ KỂ CẢ BIT DẤU MẠCH CỘNG

Bán phần

Tồn phần

Cộng nhiều bit MẠCH TRỪ

Bán phần

Tồn phần

Cộng trừ mạch MẠCH NHÂN

9 MẠCH CHIA I S

Cho số dương N, n bit, số bù N định nghĩa sau: Số bù 2: (N)2 = 2n – N

Số bù 1: (N)1 = (N)2 – = 2n – N –1 Ví dụ 1: Ta cho N = 1010

Số bù N (N)2 = 10000 – 1010 = 0110 Và số bù N (N)1 = 0110 – = 0101 Ví dụ 2: Ta cho N = 1100 1010 1100

Số bù N (N)2 = 0011 0101 0100 Và số bù N (N)1 = 0011 0101 0011 Nhận xét:

- Để có số bù số, bit LSB (bit tận bên phải), ngược bên trái, số giữ nguyên lúc gặp bit đầu tiên, sau đảo tất bit cịn lại

- Để có số bù ta đảo tất bit số

Từ nhận xét trên, ta tạo mạch với số bù bù (hình dưới)

Hình: Mạch tạo số bù bù (3 bit) Khi C = 1, mạch tạo ngã số nhị phân bù (của số ngã vào) Khi C = 0, mạch tạo ngã số nhị phân bù (của số ngã vào) Ta xét biểu thức ngã theo ngã vào sau:

) ( ) ( 3 2 1 b b C b B b C b B C b B + + ⊕ = + ⊕ = ⊕ =

Khi C = 1, ngã cổng OR ln 1, cổng EX-OR ln có ngã vào nên ngã đảo ngã vào lại

(2)

3 3 2 2 1 1 ) ( ) ( b b b b b B b b b b B b b B = ⊕ = + + ⊕ = = ⊕ = + ⊕ = = ⊕ =

Khi C =

B1 = b1 ⊕ = b1

B2 = b2 ⊕ (0 + b1) = b2 ⊕ b1

B3 = b3 ⊕ (0 + b1+ b2) = b2 ⊕ (b1 + b2)

Vậy tất bít sau bit (tính từ bít trọng số nhỏ - LSB) bị đảo trạng thái Đây số bù b

Chúng ta thiết kế mạch tạo số bù cách dùng FF RS Mạch dùng thuận tiện cần thực toán cộng trừ nhiều bit nối tiếp

Hình: Mạch tạo số bù dùng FF RS

Bắt đầu, Preset mạch để ngã Q = 1, cổng G2 mở, G3 đóng cho số B qua mà không bị đảo có bit đến, cổng G1 mở cho xung đồng hồ qua, FF RS Reset Q = Q =1, G3 mở, G2 đóng, số B qua cổng G2 bị đảo Ở ngã số bù B

II CÁC PHÉP TOÁN NH PHÂN TRÊN S

1 Trường hợp N1<N2

Cho số số dương N1 N2 có n bit (nếu số bit khác ta phải thêm vào, mà không làm thay đổi giá trị, để hai có số bit)

Ta tính:

N1 – N2 = N1 – N2 + 2n – – 2n + = N1 + (2n – N2 – 1) – 2n + = N1 + (N2)1 – 2n +

= – {2n – [N1 + (N2)1] – 1} = – [N1 + (N2)1]1

Vậy N1 – N2 có cách cộng số bù N2 vào N1 lấy bù tổng thêm dấu trừ Như vậy, ta thực phép trừ cần dùng phép cộng phép đảo

Ví dụ: Tính 1001 – 11010 dùng số bù

Ta có: N1 = 01001 (thêm vào số để có bit N2) N2 = 11010 → (N2)1 = 00101

N1 – N2 = – [N1 + (N2)1]1 = –(01001 + 00101) = – (01110)1 = –(10001) Trong hệ thập phân toán: 910 – 2610 = –1710

Để thấy dấu trừ nhận nào, ta viết lại phép toán

S Pr Q

CK

R Cl Q

(3)

+ NN1 01001

2 00101

Số tràn→ 01110

Khơng có số tràn dấu hiệu số âm, ta phải lấy bù thêm dấu trừ để đọc kết cuối cùng: –(01110)1 = – 10001

2 Trường hợp N1 N2

Kết N1 – N2 số số dương, phép tính thực theo qui tắc sau: Cộng N1 với (N2)1 cộng thêm mà khơng quan tâm đến số nhớ

Ví dụ 1: Tính 110101 – 100110 N1 = 110101 (N2)1 = 011001

+ N1 110101

(N2)1 011001 001110

+

Số tràn→1 001111

Bỏ qua số nhớ cuối ta kết N1 – N2 =001111 Trong hệ thập phân toán: 5310 – 3810 = 1510

Trong phép tính có số tràn chứng tỏ kết số dương Số cộng thêm vào xem lấy từ số nhớ đem qua

Ví dụ 2: Tính 10110 – 10110 N1 = 10110 (N2)1 = 01001

+ N1 10110

(N2)1 01001

11111

+

Số tràn→1 00000

Trong phép cộng đầu tiên, khơng có số tràn, kết xem số âm số bù cộng thêm xuất số tràn mà ta bỏ qua Vậy N1 – N2 = 00000

III CÁC PHÉP TOÁN NH PHÂN TRÊN S

1 Trường hợp N1<N2

Các tốn dùng số bù bất tiện ta phải cộng vào, để tránh việc này, ta dùng phép toán dùng số bù

Tương tự, cho số nhị phân dương N1 N2 có n bit Ta tính:

N1 – N2 = N1 – N2 + 2n – 2n = N1 + (2n – N2) – 2n = N1 + (N2)2 – 2n

= – {2n – [N1 + (N2)2]} = – [N1 + (N2)2]2

Vậy N1 – N2 có cách cộng số bù N2 vào N1 lấy bù tổng thêm dấu trừ Như vậy, ta chuyển phép tính trừ thành phép tính cộng

(4)

Vậy N1 – N2 = – [N1 + (N2)2]2 = –[01001+00110]2 = –(01111)2 = – (10001) Tương tự trên, để thấy trừ nhận nào, ta viết lại phép toán

+ N1 01001

(N2)2 00110 Số tràn→0 01111

Không có số tràn dấu hiệu số âm Ta phải lấy bù thêm dấu trừ để có kết cuối

2 Trường hợp N1 N2

Kết N1 – N2 số số dương, phép tính thực theo qui tắc sau: Cộng N1 với (N2)2 mà không quan tâm đến số nhớ vị trí 2n

Ví dụ 1: Tính 110101 – 100110 N1 = 110101 (N2)2 = 011010

+ N1 110101

(N2)2 011010 Số tràn→1 001111

Có số tràn, kết số dương Bỏ qua số nhớ cuối cùng, không cần biến đổi ta kết N1 – N2 =001111

Trong hệ thập phân toán: 5310 – 3810 = 1510 Ví dụ 2: Tính 10110 – 10110

N1 = 10110 (N2)1 = 01010

+ N1 10110

(N2)2 01010 Số tràn→1 00000

Bỏ qua số tràn, ta N1 – N2 = 00000

IV CÁC PHÉP TOÁN DÙNG S BÙ K C BIT DU

Cho tới giờ, thực phép tốn với số khơng dấu xuất dấu trừ kết Trong máy tính, khắc phục cách dùng số có dấu

Với qui ước chung là: Số dương bit dấu 0, số âm bit dấu

Ví dụ 1: Ta lấy số số âm dương đối (lưu ý hai số đối cộng lại phải 0)

+10 = 01010 +15 = 01111 +23 = 010111 –10 = 10110 –15 = 10001 –23 = 101001 Có thể thấy rằng, số âm số bù kể bit dấu Với cách biểu diễn số có dấu, phép toán trừ trở thành phép toán cộng

(5)

C2↓ C1↓

1 11 ← Số nhớ

+ 1110 1 0111 0101 C’2↑ Dấu↑

Bit dấu kết số dương, bỏ số tràn C’2 Vậy N1 – N2 = 00101 Trong thập phân toán [14 + (–9)] =

Nếu N1, N2 dương âm, kết cần thêm bit tràn số Trong trường hợp bit tràn thuộc kết C’2 bit dấu

Ví dụ 3: Tính N1 + N2 = 01110 + 01001 (Bài toán: 1410 + 910) Kết là: 010111 (2310) Với C’2 = bit dấu

C2↓ C1↓

0 ← Số nhớ

+ 1110 0 1001 0111 Dấu = C’2↑

Ví dụ 4: Tính N1 – N2 = 10010 – 01001 (Bài toán: –1410 – 910) Tương tự trên: (N2)2 = 10111

C2↓ C1↓

1 11 ← Số nhớ

+ 0010 1 0111 1001 Dấu = C’2↑

Một lần C’2 bit dấu Kết là: 101001 Ù–2310 (010111 Ù+2310) Từ kết trên, ta rut qui tắc sau:

Nếu C1 = C2 C’2 bit tràn bỏđi Nếu C1 C2 C’2 bit dấu Ví dụ 5: Tính N1 – N2 = 011101 – 0110 (Bài toán: 2910 – 610)

Tương tự trên, N2 phải có số bit N1: N2 = 000110 Ỵ (N2)2 = 111010 C2↓ C1↓

1 1 ← Số nhớ

+ 11101 1 11010 10111 C’2↑ Dấu↑

(6)

0 0 1

1

0 1

↑ 1

1

↑ 1

1 0

↑ 1

1 1

↑ 1

1 0

↑ 1

0 1

Số dư

0 0 1

Thương số

Ví d 3: Thực toán 2110 = 0101012 chia 510 = 01102, kết dư Tuy nhiên, phép toán ta thấy phép cộng với phép chia cuối cho kết âm (1100), để điều chỉnh ta phải cộng vào số chia bỏ qua số tràn

Số bù 510 = 01012 (0111)2 = 1011

0 0 1

1

1 1

↑ 1

1 0

↑ 1

1 1

↑ 1

0 0

↑ 1

1 1

↑ 1

1 0 1

0 0 0 0

Thương số = Số dư =

Trong mạch chia hình đây, bước thực cổng EXOR cùng, có ngã vào điều khiển để thực toán trừ Sau bước thứ nhất, bit thứ tư mạch cộng (S4) định phép tốn sau cộng (S4=1) hay trừ (S4=0) số bị chia với số chia Số nhớ toán cuối (bước 6) bit LSB thương số Mạch cộng cuối thiết kế kết hợp cổng AND để xử lý kết số dư hai ví dụ Nếu kết tốn bước có S4=1 cổng AND mở để thực toán cộng với số chia để điều chỉnh số dư

(7)

0

0 0 D6 D5 D4 D3 D2 D1 d1 d2 d3 d4

O6 O5 O4 O3 O2 O1 R4 R3 R2 R1 Th••ng s• S• d• C4

C4

C4

C4

C4

Ngày đăng: 01/04/2021, 02:09

TỪ KHÓA LIÊN QUAN