переповнення
Приклад 2. p> [А] м ок = 11,010010 [В] м ок = 11,100011
11,010010
11,100011
1 в†ђ 10,110101
Г + 1
10,110110 - негативне переповнення.
В
2.Операція зсуву в ЕОМ
До операції зсуву доводитися звертатися при виконанні додавання в машині з плаваючою комою, а також при виконанні операцій множення і ділення в ЕОМ обох типів. У всіх цих операціях проводиться зсув мантисс, тому будуть розглядатися тільки числа з фіксованою комою.
Зрушення прямого коду числа на k розрядів вправо еквівалентний множенню цього числа на 2 - k . З огляду на те, що при зсуві вправо молодші розряди зрушуваної числа виходять за межі розрядної сітки машини і губляться, похибка подання зрушеного коду числа має негативний знак для кодів позитивних чисел і позитивний знак для кодів негативних чисел. Для її зменшення необхідно вживати округлення чисел. При зсуві прямого коду негативною дробу зсувається тільки її мантиса, а знак залишається без зміни.
Приклад 1. br/>
А = 1,011010, k = 1 (лівий зсув) k = -1 (правий зрушення)
2 1 хА = 1,110100 2 -1 хА = 1,001101
Зрушення прямого коду числа вліво на k розрядів еквівалентний множенню числа на 2 k . Ця операція коректна до тих пір, поки старші значущі цифри не почнуть виходити за межі розрядної сітки, тобто поки число по абсолютною величиною не стане більше 1. При зсуві вліво звільняються праворуч розряди заповнюються 0. p> Зрушення позитивного числа вліво або вправо в додатковому або зворотному кодах нічим не відрізняються від зсуву позитивного числа в прямому коді. p> Під зсувом негативного числа А, записаного інверсним (додатковим або зворотним) кодом, розуміється перетворення інверсного коду негативного числа А в інверсний код негативного числа ах 2 - k у разі зсуву вправо і ах 2 k у разі зсуву вліво. p> Загальним правилом зсуву дробів вправо в інверсному коді є наявність передачі з знакового розряду в старший цифровий розряд і відновлення знака, тобто звільняються праворуч розряди заповнюються 1. p> При зсуві вліво звільняються праворуч розряди в зворотному коді заповнюються 1, а в додатковому - 0. Кількість зрушень правильного дробу вліво обмежено умовою | ах 2 k | <1, тобто зсув допустимо лише до тих пір, поки в розряді праворуч від комою не з'явиться 0 (поки зберігається знак результату). Зміна знака результату при зсуві вліво є ознакою переповнення, який для негативних і позитивних чисел збігається з ознакою переповнення, що виникають при складення кодів двох чисел. p> Приклад 2.
Зрушення у зворотному коді:
[А] про = 1,011010, k = 1 (лівий зсув) k = -1 (правий зрушення)
2 1 хА = 1,110101 2 -1 хА = 1,101101
Зрушення в додатковому коді:
[А] д = 1,011010, k = 1 (лівий зсув) k = -1 (правий зрушення)
2 1 хА = 1,110100 2 -1 хА = 1,101101
2.1 Алгоритм складання чисел в машинах з плаваючою комою
Результат складання двох чисел А = p ma a; B = p mb b, представлених у формі з плаваючою комою, повинен бути теж числом виду С = p m з c (тут a, b, c - мантіссs, m a , m b , m c - порядокb). При цьому має виконуватися рівність:
p ma a + p mb b = p m з c
При додаванні чисел, представлених в нормальній формі, можна виділити 4 етапи:
1. Зрівнюються порядки доданків: менший порядок збільшується до більшого, а мантиса преутвореного числа зсувається вправо на відповідну кількість розрядів. p> Для цієї мети виробляється віднімання порядків чисел. Знак і модуль різниці будуть визначати відповідно, яке з доданків потрібно перетворювати і на скільки розрядів зрушувати мантиссу.
2. Виробляється перетворення мантисс в один з модифікованих інверсних кодів: додатковий або зворотний.
3. Виконується додавання мантисс за правилами складання чисел з фіксованою комою.
4. Виробляється нормалізація результату і перетворення в прямий код, приписується загальний порядок доданків і виконується округлення мантиси результату.
Приклад 1. Прямий код. br/>
А: m а = 0,011; a = 1,101010; В: m в = 0,101; b = 0,110010;
тому m а - m в = 2? то необхідно m а збільшити до m в і відкоригувати мантиссу числа А зрушенням на 2 розряду вправо.
А ': m' а = 0,101; a = 1,001010;
[a '] Д = 11,110110; [b] Д = 00,110010;
+