logo

Додавання та віднімання з доповненням до 2

У нашому попередньому розділі ми дізналися, як ми можемо виконувати арифметичні операції, такі як додавання та віднімання, використовуючи доповнення до 1. У цьому розділі ми навчимося виконувати ці операції за допомогою доповнення 2.

порівнянна java

Додавання з використанням доповнення 2

Існує три різні випадки, коли ми додаємо два двійкові числа за допомогою доповнення до 2, а саме:

Випадок 1: Додавання додатного числа з від’ємним числом, коли додатне число має більшу величину.

Спочатку знайдіть доповнення 2 до заданого від’ємного числа. Підведіть підсумок із заданим додатним числом. Якщо ми отримаємо кінцеве перенесення 1, тоді число буде додатним числом, і біт переносу буде відкинуто, а решта бітів є остаточним результатом.

Приклад: 1101 і -1001

  1. Спочатку знайдіть доповнення до 2 від’ємного числа 1001. Отже, щоб знайти доповнення до 2, замініть усі 0 на 1 і всі 1 на 0 або знайдіть доповнення до 1 числа 1001. Доповнення до 1 числа 1001 дорівнює 0110 і додайте 1 до LSB результату 0110. Отже, доповнення до 2 числа 1001 дорівнює 0110+1=0111
  2. Додайте обидва числа, тобто 1101 і 0111;
    1101+0111=1 0100
  3. Додавши обидва числа, ми отримаємо кінцевий перенос 1. Ми відкидаємо кінцевий перенос. Отже, додавання обох чисел дорівнює 0100.

Випадок 2: Додавання додатного значення з від’ємним значенням, коли від’ємне число має вищу величину.

Спочатку додайте додатне значення зі значенням доповнення 2 до від’ємного числа. Тут не знайдено кінцевого переносу. Отже, ми беремо доповнення 2 до результату, щоб отримати остаточний результат.

Примітка. Результат є від’ємним значенням.

Приклад: 1101 і -1110

  1. Спочатку знайдіть доповнення до 2 від’ємного числа 1110. Отже, щоб знайти доповнення до 2, додайте 1 до LSB його значення доповнення до 1 0001.
    0001+1=0010
  2. Додайте обидва числа, тобто 1101 і 0010;
    1101+0010= 1111
  3. Знайдіть доповнення 2 до результату 1110, який є кінцевим результатом. Таким чином, доповнення до 2 результату 1110 дорівнює 0001, і додайте від’ємний знак перед числом, щоб ми могли визначити, що це від’ємне число.

Випадок 3: додавання двох від’ємних чисел

У цьому випадку спочатку знайдіть доповнення 2 до обох від’ємних чисел, а потім додамо обидва ці числа. У цьому випадку ми завжди отримуватимемо кінцеве перенесення, яке буде додано до LSB, і, забувши про кінцевий результат, ми візьмемо доповнення результату the2.

Примітка. Результат є від’ємним значенням.

Приклад: -1101 і -1110 у п'ятибітному регістрі

  1. Спочатку знайдіть доповнення до 2 від’ємних чисел 01101 і 01110. Отже, щоб знайти доповнення до 2, ми додаємо 1 до LSB доповнення до 1 цих чисел. Доповнення 2 до числа 01110 дорівнює 10010, а 01101 дорівнює 10011.
  2. Ми додаємо обидва додаткові числа, тобто 10001 і 10010;
    10010+10011= 1 00101
  3. Додавши обидва числа, ми отримаємо кінцеве перенесення 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. Це від’ємне число та остаточна відповідь.