Двійково додатковий код, fkn antitotal

Двійково додатковий код - форма подання, при якій віднімання можна привести до складання (підсумовування) в двійковій системі.

Як отримати додатковий код числа?

Почнемо з того, що операції повинні проводитися з певним числом розрядів - для прикладу розглянемо 8 біт:

Другий момент - перший розряд (біт) в двійковій додатковому коді служить для визначення знака числа.
І третє - позитивні числа в двійковій додатковому коді кодується також як і в "звичайному житті" - але пам'ятаємо про те. що в першому розряді повинен бути нуль. наприклад максимальне з чисел яке можна закодувати в двійковій-додатковому коді = +127:

Також корисно ознайомитися з такою ось таблицею:

Отримання двійково додаткового коду для негативних чисел

Слід зробити наступне (для негативного числа):

  1. Записати модуль числа в двійковій формі в вказану кількість розрядів. наприклад для -4 його модуль | -4 | = 4:
  2. Інвертувати все розряди (значення біт):
  3. Додати одиницю:

Ось ми і отримали уявлення числа -4 в двійковій-дополнетельном коді:

зворотне перетворення

Що ми можемо сказати про даному числі "чисто з точки зору", якщо не знаємо з якого десяткового воно отримано?
Фактично нас цікавлять дві речі:

  1. Якого знака це число
  2. Чи повинні ми переводити це число "назад" в прямий двійковий код

Знак після виконання операції визначається станом старшого (самого "лівого") біта. Якщо старший біт = 1, то виробляємо зворотне перетворення, для отримання модуля негативного числа в двійковому коді:

  1. віднімаємо одиницю
  2. інвертуємо все розряди

Key Words for FKN + antitotal forum (CS VSU):

Схожі статті