Основы объектно-ориентированного программирования на языке C# book | Page 92
6 Зображення чисел у комп’ютерi
Вiд’ємнi числа завжди мiстять у двiйковому зображеннi одиницю в
найстаршому розрядi, який називають знаковим. Абсолютна величи-
на числа, що кодується, отримується як двiйкове доповнення iнших
бiтiв (нулi потрiбно замiнити на одиницi, i навпаки), збiльшене на
одиницю. Таке зображення називається додатковим кодом.
Додатковий код двiйкового числа A, що зображується в n-розряднiй
сiтцi, визначається як I = A, якщо A ≥ 0; I = c−|A|, якщо A < 0, де c
– величина, що дорiвнює вазi розряду, який iде за старшим розрядом
використовуваноı̈ розрядноı̈ сiтки: для дробiв c = 2 0 , для цiлих чисел
c = 2 n . Для додатних i вiд’ємних чисел дiапазони значень, що зобра-
жуються, рiзнi. Для додатних чисел, як i для прямого коду, 0 ≤ I < a,
а для вiд’ємних 0 < |I| ≤ a. Iз визначення додаткового коду випли-
ває, що старший (знаковий) розряд коду додатного числа дорiвнює 0,
а вiд’ємного становить –1. Додатковий код вiд’ємного числа зручно
одержувати через зворотний код.
Додатковий код вiд’ємного числа може бути отриманий зi зворотно-
го додаванням 1 до молодшого розряду зворотного коду. Наприклад,
для чотирирозрядноı̈ сiтки
0101 (5)
1011 (–5)
Для переведення числа в додатковий код можна рекомендувати й
такий алгоритм:
1. У двiйковому зображеннi абсолютноı̈ величини числа всi одиницi
замiнити нулями, i навпаки.
2. До отриманого результату додати одиницю.
Застосуємо наведений алгоритм до числа –5. Нехай нас цiкавить стан-
дартне 16-розрядне значення. Спочатку зобразимо модуль числа у
двiйковому виглядi, доповнивши його нулями лiворуч до необхiдноı̈
кiлькостi розрядiв. Тодi десяткове число 5 перетвориться на 0000 0000
0000 0101. Зробимо замiну нулiв i одиниць; одержимо 1111 1111 1111
1010. Додамо одиницю й дiстанемо вiдповiдь: 1111 1111 1111 1011. При
визначеннi величини числа знаковий розряд не використовується, то-
му числа зi знаком мають максимальне значення, що складається iз
15 двiйкових розрядiв. Властивостями зображення чисел у додатко-
вому кодi є:
1. Повторне застосування розглянутих вище правил переведення
в додатковий код повертає вихiдне число.
2. Додавання вихiдного числа з його додатковим кодом завжди дає
нульовий результат, тому що X + (−X) = 0. Узагальнюючи цю
92