У нашому попередньому розділі ми дізналися, як ми можемо виконувати арифметичні операції, такі як додавання та віднімання, використовуючи доповнення до 1. У цьому розділі ми навчимося виконувати ці операції за допомогою доповнення 2.
порівнянна java
Додавання з використанням доповнення 2
Існує три різні випадки, коли ми додаємо два двійкові числа за допомогою доповнення до 2, а саме:
Випадок 1: Додавання додатного числа з від’ємним числом, коли додатне число має більшу величину.
Спочатку знайдіть доповнення 2 до заданого від’ємного числа. Підведіть підсумок із заданим додатним числом. Якщо ми отримаємо кінцеве перенесення 1, тоді число буде додатним числом, і біт переносу буде відкинуто, а решта бітів є остаточним результатом.
Приклад: 1101 і -1001
- Спочатку знайдіть доповнення до 2 від’ємного числа 1001. Отже, щоб знайти доповнення до 2, замініть усі 0 на 1 і всі 1 на 0 або знайдіть доповнення до 1 числа 1001. Доповнення до 1 числа 1001 дорівнює 0110 і додайте 1 до LSB результату 0110. Отже, доповнення до 2 числа 1001 дорівнює 0110+1=0111
- Додайте обидва числа, тобто 1101 і 0111;
1101+0111=1 0100 - Додавши обидва числа, ми отримаємо кінцевий перенос 1. Ми відкидаємо кінцевий перенос. Отже, додавання обох чисел дорівнює 0100.
Випадок 2: Додавання додатного значення з від’ємним значенням, коли від’ємне число має вищу величину.
Спочатку додайте додатне значення зі значенням доповнення 2 до від’ємного числа. Тут не знайдено кінцевого переносу. Отже, ми беремо доповнення 2 до результату, щоб отримати остаточний результат.
Примітка. Результат є від’ємним значенням.
Приклад: 1101 і -1110
- Спочатку знайдіть доповнення до 2 від’ємного числа 1110. Отже, щоб знайти доповнення до 2, додайте 1 до LSB його значення доповнення до 1 0001.
0001+1=0010 - Додайте обидва числа, тобто 1101 і 0010;
1101+0010= 1111 - Знайдіть доповнення 2 до результату 1110, який є кінцевим результатом. Таким чином, доповнення до 2 результату 1110 дорівнює 0001, і додайте від’ємний знак перед числом, щоб ми могли визначити, що це від’ємне число.
Випадок 3: додавання двох від’ємних чисел
У цьому випадку спочатку знайдіть доповнення 2 до обох від’ємних чисел, а потім додамо обидва ці числа. У цьому випадку ми завжди отримуватимемо кінцеве перенесення, яке буде додано до LSB, і, забувши про кінцевий результат, ми візьмемо доповнення результату the2.
Примітка. Результат є від’ємним значенням.
Приклад: -1101 і -1110 у п'ятибітному регістрі
- Спочатку знайдіть доповнення до 2 від’ємних чисел 01101 і 01110. Отже, щоб знайти доповнення до 2, ми додаємо 1 до LSB доповнення до 1 цих чисел. Доповнення 2 до числа 01110 дорівнює 10010, а 01101 дорівнює 10011.
- Ми додаємо обидва додаткові числа, тобто 10001 і 10010;
10010+10011= 1 00101 - Додавши обидва числа, ми отримаємо кінцеве перенесення 1. Це перенесення відкидається, і кінцевий результат є доповненням 2.s до результату 00101. Отже, доповненням 2 до результату 00101 є 11011, і ми додаємо від’ємне знак перед числом, щоб ми могли визначити, що це від’ємне число.
Віднімання з використанням доповнення до 2
Нижче наведено кроки для віднімання двох двійкових чисел за допомогою доповнення до 2
- На першому кроці знайдіть доповнення до 2 від'ємника.
- Додайте доповнене число зі зменшеним.
- Якщо ми отримуємо перенесення шляхом додавання обох чисел, тоді ми відкидаємо це перенесення, і результат буде додатним, інакше беремо доповнення 2 до результату, який буде від’ємним.
приклад 1: 10101 - 00111
Ми беремо доповнення 2 до субтрагенда 00111, що дорівнює 11001. Тепер підсумуйте їх. Так,
10101+11001 =1 01110.
У наведеному вище результаті ми отримуємо біт переносу 1. Отже, ми відкидаємо цей біт переносу, і залишається кінцевий результат і додатне число.
приклад 2: 10101 - 10111
Ми беремо доповнення до 2 до від’ємного 10111, що вийде 01001. Тепер ми додаємо обидва числа. Так,
10101+01001 =11110.
У наведеному вище результаті ми не отримали біт переносу. Отже, обчисліть доповнення 2 до результату, тобто 00010. Це від’ємне число та остаточна відповідь.