ДК від’ємного числа утворюється з його прямого коду за правилом:



· у знаковому розряді залишається одиниця;

· розряди модуля числа інвертуються;

· до молодшого розряду додається одиниця.

Очевидно, що ДК від’ємного числа утворюється з його ОК додаванням одиниці до молодшого розряду.

Наприклад, - 6(10) = 1.010(ДК).

Дійсно, для числа - 6 маємо:

 1.110(ПК)
 1.001(ОК)
+    1
 1.010(ДК).

 

Зворотний перехід від ДК до ПК або ОК відбувається за тими ж правилами.

Головною перевагою ДК є те, що цифра 0 у ньому має єдине подання: 0.000... Саме тому, для подання від’ємних чисел у сучасних ПЕОМ використовується переважно ДК.

Неправильний дріб (число, що має цілу частину) із знаком записують у різних кодах за допомогою традиційного роздільника – коми між цілою і дробовою частиною. Наприклад: - 118,375(10) = 1.0001,101(ДК).

Слід пам'ятати, що для кодування додатніх чисел застосовується тільки ПК, хоча можна сказати, що для таких чисел ДК і ОК збігаються з прямим.

Операція одержання ДК від’ємного числа з ПК рівного йому за модулем додатнього числа називається операцією доповнення. Ця операція полягає в інвертуванні всіх розрядів вихідного коду (включаючи знаковий) і додавання до молодшого розряду одиниці.

Таким чином, сформулюємо наступне правило: у системі двійкових чисел із знаком заміна додатнього числа на рівне йому за модулем від’ємне і навпаки, від’ємного на додатнє, здійснюється шляхом застосуванням до коду даного числа операції доповнення.

Ця властивість подання від’ємних чисел у ДК дозволяє при виконанні арифметичних операцій взагалі відмовитися від операції віднімання, замінивши її операцією додавання з числом, що має знак, протилежний знаку числа, яке віднімається.

 

АЛГОРИТМИ ВИКОНАННЯ АРИФМЕТИЧНИХ ОПЕРАЦІЙ НАД ДВІЙКОВИМИ ЧИСЛАМИ ІЗ ЗНАКОМ

Додавання двійкових чисел із знаком

Очевидно, що при додаванні чисел із знаком можуть виникати переноси одиниці із старшого розряду модуля суми до знакового розряду (домовимося позначати його Р1) та із знакового розряду – ліворуч за межі розрядної сітки, у розряд переповнення (Р2). Через використання розглянутих раніше кодів, у яких знак числа позначається тими ж цифрами, що і розряди модуля, переповнення розрядної сітки може виникати навіть у випадку додавання чисел із різними знаками, коли модуль результату не перевищує модуля будь-якого операнда. При додаванні ж двох від’ємних чисел перенесення одиниці до розряду переповнення відбувається завжди.

При виникненні переповнення розрядної сітки для одержання правильного результату додавання необхідно застосовувати таке правило:

· якщо Р1 Å Р2 = 0, одиниця в розряді переповнення ігнорується (відкидається);

· якщо Р1 Å Р2 = 1, необхідно зсунути число на один розряд праворуч (або зсунути позицію точки на один розряд ліворуч).

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

Приклади:

1) Додавання двох додатніх чисел (без переповнення розрядної сітки).

 

0.100111 39
+ 0.001101 +13
0.110100 52

 

Р1Å Р2 = 0 – результат коректний і остаточний.

 

2) Додавання двох додатніх чисел (з переповненням розрядної сітки).

 

0.01101 13
+ 0.10011 +19
1.00000 32

 

Р1 Å Р2 = 1. Результат некоректний, тому що відбулося переповнення розрядної сітки. Зсуваючи число на один розряд праворуч, остаточно маємо 0.100000(ПК) = 32(10).

 

3) Додавання двох чисел із різними знаками (без переповнення розрядної сітки)

1.001100 - 52
+ 0.001101 + 13
1.011001 - 39

 

Р1 Å Р2 = 0. Результат коректний, але тому що він є від’ємним, для перевірки правильності розв’язання необхідно перетворити його у прямий код. Остаточно маємо 1.100111(ПК) = 39(10).

 

4) Додавання двох чисел, рівних за модулем і різних за знаком.

1.011001 - 39
+ 0.100111 + 39
10.000000 0

 

 

Р1Å Р2 = 0. Результат коректний, якщо не брати до уваги одиницю у розряді переповнення.

Додавання двох від’ємних чисел виконується аналогічно прикладам 1, 2 (у залежності від значення виразу Р1 Å Р2. Тому що результат у цьому випадку завжди від’ємний, для перевірки правильності розв’язання необхідно перетворити його у прямий код, аналогічно прикладу 3.

Висновки:

· Правильність виконання операцій додавання обов'язково повинна перевірятися шляхом аналізу значення виразу Р1Å Р2, щоб уникнути одержання некоректного результату, що виникає при переповненні розрядної сітки, при цьому: якщо Р1 Å  Р2 = 0, одиниця в розряді переповнення ігнорується (відкидається); якщо Р1Å  Р2 = 1, необхідно зсунути число на один розряд праворуч.

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


Дата добавления: 2019-09-02; просмотров: 145; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!