ПОДАННЯ ДВІЙКОВИХ ЧИСЕЛ З УРАХУВАННЯМ ЗНАКА
Операцію віднімання двох позитивних А і В чисел можна розглядати як операцію алгебраїчного додавання чисел з різними знаками А - В = А + ( -В ). Тому для заміни арифметичної операції віднімання операцією алгебраїчного додавання необхідно якимось чином представити число з урахуванням знака. Для представлення чисел зі знаком використовуються прямий, зворотний і додатковий коди. Так як кодування позитивних чисел зводиться до запису нуля в старший додатковий розряд двійкового числа, основна особливість цих кодів полягає в тому, що всі три коду для позитивних чисел збігаються. Наприклад, для 3-розрядного позитивного числа А= 110 прямий, зворотний і додатковий коди мають вигляд 4-розрядного числа: А = Л () бр = ЛДО || = 0110.
Тому в подальшому основну увагу приділено поданням негативних двійкових чисел у вигляді "розрядних кодів. Для простоти розглядаються цілі числа.
Визначимо діапазон значень чисел, що представляються (п - 1) розрядних двійковим кодом з урахуванням того, що п- й розряд відводиться під знак числа. У розрядну сітку цифрового пристрою можна записати наступне максимальне за абсолютним значенням (і - 1) -розрядної двійковечисло | Л | тах = 11 ... 1 = 2 "" 11, де п - 1 - кількість значущих розрядів розрядної сітки. отже, діапазон зміни значень цілих чисел лежить в межах ~ (2 "~ 1 - 1) < <А <( 2" - '- 1), тобто
Прямий код. Для уявлення цілого негативного двійкового числа А = -яг_2ап-з-aiag в ПРЯМ0М коді досить в додатковий знаковий розряд записати одиницю, зберігши всі цифрові розряди незмінними: ОПР = 1а п 2 а п З ... а { а 0. Наприклад, якщо А = -101, то ОПР = 1101. Правила перетворення цілих чисел в прямий код мають вигляд
де | Л | - модуль числа А.
Зворотний код. Для отримання зворотного коду цілого двійкового негативного числанеобхідно проинвертировать все цифрові розряди, тобто всі нулі замінити на одиниці, а всі одиниці - на нулі, і в додатковий старший розряд записати одиницю:
. Наприклад, якщо А = -101, то
. Відзначимо, що стоять попереду незначущі нулі модуля числа також інвертуються: для А = -001 зворотний код має вигляд
Правила перетворення цілих чисел в зворотний код мають вигляд
Додатковий код. Для подання в додатковому коді цілого двійкового негативного числанеобхідно отримати зворотний код вихідного числа, а потім до зворотного коду додати одиницю:
Правила перетворення цілих чисел в додатковий код мають вигляд
Наприклад, для числа А = -101 отримуємо Лдоп = 1010 + 1 = 1011; для числа А = -001 отримуємо Лдоп = 1110 + 1 = 1111.
Для наочності в табл. 2.5 наведені правила і приклади запису цілих чисел і чисел з фіксованою точкою.
Таблиця 2.5
числа А |
прямий код А пр |
зворотний код А обр |
додатковий код А доп |
|
Цілі |
> 0 |
А |
А |
А |
<0 |
1 А |
1 А |
1 А + 1 |
|
101 |
0101 |
0101 |
0101 |
|
-101 |
1 101 |
1010 |
1011 |
|
+000 |
0000 |
0000 |
0000 |
|
-000 |
1000 |
1111 |
0000 |
|
З фіксованою точкою |
> 0 |
А |
А |
А |
<0 |
|
|
|
|
0,101 |
0101 |
0101 |
0101 |
|
-0,101 |
1 101 |
1010 |
1011 |
|
+0,000 |
0000 |
0000 |
0000 |
|
-0,000 |
1000 |
1111 |
0000 |