Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТИЖ.docx
Скачиваний:
2
Добавлен:
23.11.2018
Размер:
29.43 Кб
Скачать

1.3.5.1. Двійковий додатковий код

При поданні негативних цілих чисел використовується так званий двоіч ¬ ний додатковий код. Числа, представлені в цьому коді, мають властивість Адді ¬ ної інверсії, або інверсії щодо складання. Це означає, що якщо скласти деяке позитивне число і його додатковий код, то в результаті вийде 0. Використання додаткового коду полегшує проектування електронних схем арифметико-логічного пристрою процесора, оскільки в цьому випадку дві основні арифметичні операції - додавання і віднімання - можуть виконуватися за допомогою однієї і тієї ж електронної схеми суматора. Таким чином, при виконанні опера ¬ ції вирахування А - В процесор насправді складає число А з числом В, представ ¬ ленним в двійковому додатковому коді: / * + (-В).

Щоб отримати двійковий додатковий код цілого числа, необхідно інвер ¬ ровать значення всіх його бітів і до отриманого в результаті числа додати 1. Напри ¬ заходів, для 8-розрядного двійкового числа 00000001 додатковий код дорівнює 11111111, як показано в табл. 1.12.

Таблиця 1.12. Приклад перетворення двійкового числа в додатковий код

Початкове значення 00000001

Крок 1: інвертування бітів 11111110

Крок 2: додаток 1 до отриманого на кроці 1 значенням 11111110 +00000001

Сума: додатковий код числа 11111111

Таким чином, двійкове число 11111111 є представленням числа -1 в до ¬ навчої коді. Операція отримання додаткового коду є взаємно обра ¬ Тімой. Це означає, що якщо уявити число 11111111 в додатковому коді, то в результаті вийде вихідне двійкове чіслоОООООООІ.

Додатковий код для шістнадцятиричних чисел. Алгоритм отримання додаткового ¬ ного коду для шістнадцятиричних чисел нічим не відрізняється від розглянутого вище алгоритму для двійкових чисел: потрібно інвертувати всі біти шестнадцатеріч-ного числа і до отриманого результату додати 1. Найпростіше інвертувати біти одного шістнадцяткового розряду, якщо відняти його значення з числа 15. Нижче при ¬ ведено кілька прикладів перетворення шістнадцятиричних чисел в додаткових ¬ ний код:

бАЗЕ -> 95С2 + 1 -> 95СЗ 95СЗ -> 6АЗС + 1 -> 6АЗЕ 21Г0 -> ОЕОЕ + 1 -> вію БЕ10 -> 21ЕГ + 1 -> 21Г0

Перетворення двійкових чисел із знаком на десяткове число. Припустимо, що вам потрібно визначити десяткове значення деякого двійкового числа із знаком. Нижче описана послідовність ваших дій.

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

1.3.1.7. Якщо старший біт двійкового числа дорівнює 0, значить перед нами позитивне число. Воно перетворюється в десятковий еквівалент за аналогією з беззнако ¬ вимі двійковими числами.

Наприклад, старший біт двійкового числа із знаком 11110000 дорівнює 1, слідчий ¬ но, це негативне число. Щоб перетворити його в десяткову форму, спочатку оп ¬ ріділи його модуль, представивши число в додатковому коді. Після цього отриманий результат перетворюємо в десяткову форму як звичайно. У табл. 1.13 показана по ¬ послідовності виконується дій.

Таблиця 1.13. Приклад перетворення негативного двійкового числа в десяткову форму

Початкове значення 11110000

Крок 1: інвертування бітів 00001111

Крок 2: додаток 1 до отриманого на кроці 1 значенням 00001111 +00000001

Крок 3: отримуємо додатковий код числа 00010000

Крок 4: перетворюємо його в десяткову форму -16

Оскільки вихідне число 11110000 було негативним, нам потрібно не забути про знак "-" в його десятковому еквіваленті: -16.

Перетворення десяткових чисел зі знаком в двійкову форму. Припустимо, що вам потрібно визначити двійкове уявлення деякого десяткового числа зі знаком. Нижче описана послідовність ваших дій.

1.3.1.8. Спочатку потрібно перетворити в двійкову форму абсолютне значення десятіч ¬ ного числа.

1.3.1.9. Якщо вихідне десяткове число було негативним, то потрібно представити дво ¬ ічное число, отримане на попередньому кроці, в додатковому коді.

Як приклад перетворимо десяткове число -43 в двійкову форму, як описа ¬ но нижче.

Абсолютне значення числа 43 у двійковій формі буде виглядати так: 00101011.

1.3.1.10. Оскільки вихідне число було негативним, перетворимо число 00101011 в додатковий код, який дорівнює 11010101. Це і буде подання числа -43 в двійковій формі.

Перетворення десяткових чисел зі знаком в шістнадцяткову форму. Щоб ви ¬ конати подібне перетворення, скористайтесь наведеною нижче послідовно ¬ стю дій.

1.3.1.11. Спочатку потрібно перетворити абсолютне значення десяткового числа в шестна-дцатерічную форму, як було описано вище.

1.3.1.12. Якщо вихідне десяткове число було негативним, то потрібно представити ше-стнадцатерічное число, отримане на попередньому кроці, в додатковому коді.

Перетворення шістнадцятиричних чисел зі знаком в десяткову форму. Щоб ви ¬ конати подібне перетворення, скористайтесь наведеною нижче інструкцією.

1.3.1.13. Якщо вихідне шістнадцяткове число негативне, спочатку потрібно перетворень-вувати його в додатковий код.

1.3.1.14. Отримане на попередньому кроці позитивне число перетворюється в деся-тичних форму за описаною вище формулою. Якщо вихідне число було отрица ¬ тельно, перед десятковим числом потрібно поставити знак "-".

Щоб визначити знак шістнадцяткового числа, потрібно проаналізувати значення його старшої цифри. Якщо вона більше або дорівнює 8, то число негативне, а якщо менше або дорівнює 7 - позитивне. Наприклад, число 8А20 негативне, а 7 го 9 - позитивне.

1.3.5.2. Максимальні та мінімальні значення

У двійковому цілому л-розрядному числі зі знаком для подання абсолютного зна ¬ чення числа може використовуватися тільки я - 1 бітів. У табл. 1.14 наведені максі ¬ формальні і мінімальні значення для двійкових чисел із знаком, що займають в пам'яті байт, слово, подвійне слово і учетверенное слово.

Таблиця 1.14. Допустимі діапазони значень цілих чисел із знаком

Тип Діапазон значень Ступені двійки

Байт -128 ... +127 -27 ... (27-I)

Слово -32768 ... +32 +767 -2,5 ... (2,5-1)

Подвійне слово -2147483648 ... +2 147 483 647 -23 ,...( 23, -1)

Учетверенное слово -9 223 372 036 854 775 808 ... +9 223 372 036 854 775 807 -263 ". (263-І)