Двійково додатковий код - форма подання, при якій віднімання можна привести до складання (підсумовування) в двійковій системі.
Як отримати додатковий код числа?
Почнемо з того, що операції повинні проводитися з певним числом розрядів - для прикладу розглянемо 8 біт:
Другий момент - перший розряд (біт) в двійковій додатковому коді служить для визначення знака числа.
І третє - позитивні числа в двійковій додатковому коді кодується також як і в "звичайному житті" - але пам'ятаємо про те. що в першому розряді повинен бути нуль. наприклад максимальне з чисел яке можна закодувати в двійковій-додатковому коді = +127:
Також корисно ознайомитися з такою ось таблицею:
Отримання двійково додаткового коду для негативних чисел
Слід зробити наступне (для негативного числа):
- Записати модуль числа в двійковій формі в вказану кількість розрядів. наприклад для -4 його модуль | -4 | = 4:
- Інвертувати все розряди (значення біт):
- Додати одиницю:
Ось ми і отримали уявлення числа -4 в двійковій-дополнетельном коді:
зворотне перетворення
Що ми можемо сказати про даному числі "чисто з точки зору", якщо не знаємо з якого десяткового воно отримано?
Фактично нас цікавлять дві речі:
- Якого знака це число
- Чи повинні ми переводити це число "назад" в прямий двійковий код
Знак після виконання операції визначається станом старшого (самого "лівого") біта. Якщо старший біт = 1, то виробляємо зворотне перетворення, для отримання модуля негативного числа в двійковому коді:
- віднімаємо одиницю
- інвертуємо все розряди