Зміст
Доповнення 2 - це система представлення від’ємних двійкових чисел. Також його можна використовувати для здійснення віднімання - для віднімання "А" з "В", перетворення "А" в від'ємне число і додавання; це дозволяє уникнути необхідності будувати обладнання для додавання та віднімання. За допомогою системи перетворення двійкового числа в доповнення 2 - і навпаки - можна спростити подання від’ємного числа та здійснити віднімання. Перетворення з доповнення 2 у десяткове базове число вимагає двох кроків: спочатку перетворення в двійковий, а потім з двійкового в десятковий.
Крок 1
Представляйте десяткові числа у вигляді двійкових чисел безперервно, діливши їх на 2 у ряді та зберігаючи залишки. Наприклад, щоб перетворити 13 у двійковий, розділіть 13 на 2, щоб отримати 6, а перший залишок дорівнює 1. Розділіть на 6 на 2, щоб отримати 3, а другий залишок дорівнює 0. Діліть на 3 на 2, щоб отримати 1 і третій залишок, який дорівнює 1. Розділіть 1 на 2, щоб отримати 0, а залишок дорівнює 1. Залишки у зворотному порядку виробництва складають 1101, а десяткове базове число 13 = двійкове 1101. Розпізнати двійкове число легше, ніж я це. Праворуч додайте d X 2 ^ p, де "d" - двійкова цифра, а "p" - позиція, так що 1101 = (1 X 1) + (0 x 2) + (1 x 4) + (1 х 8) = 13.
Крок 2
Перетворіть із двійкового в доповнення двох, інвертуючи біти і додаючи 1. Тоді двійковий для 7 буде 00000111, а від’ємний 7 буде 11111001, оскільки 00000111 з інвертованими бітами дорівнює 11111000 і 11111000 + 1 = 11111001. Крайня ліва цифра - це сигналу. Позитивні числа мають знаковий біт нуля, а від'ємні числа мають знаковий біт 1. Одне з хороших моментів доповнення 2 - це те, що його перетворення в двійкове відбувається точно таким же процесом перетворення з двійкового в додатковий з двох. Наприклад, щоб перетворити доповнення двох із -7 у двійковий файл, інвертуйте цифри та додайте 1. 11111001 інвертоване дорівнює 00000110 та 00000110 + 1 = 00000111.
Крок 3
Перетворіть доповнення 2 у десяткове базове число у два етапи: доповнення 2 у двійкове, а після двійкового - у десяткове. Наприклад, щоб перетворити -21 на додаток до 2 - 11101011 - у десяткову, спочатку перетворіть у двійкову, а потім перетворіть двійкову в десяткову. Інвертуйте 11101011, щоб отримати 00010100, і додайте 1, щоб отримати 00010101, що дорівнює 21 в двійковому вигляді. Потім декодуйте двійковий файл, використовуючи позиційні позначення, щоб отримати (0 X 128) + (0 X 64) + (0 X 32) + (1 X 16) + (0 X 8) + (1 X 4) + (0 X 2) + (1 х 1) = 21.