Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Подання додатних і від’ємних двійкових чисел та правила виконання операції алгебраїчного додавання в оберненому коді
Якщо знаковий розряд числа має вагу (pn+1 – pk), на відміну від pn+1 для додаткового коду, то кількісний еквівалент числа А =aзнa-1…a-n…a-k, заданого в позиційній системі числення з основою р, буде визначатися виразом . Такі коди називають оберненим и, оскiльки взаємне перетворення від’ємних чисел не вимагає залучення арифметичних операцій. Додатні числа в оберненому коді мають таке саме зображення, як і в прямому та додатковому кодах. Зв'язок між значеннями цифр прямого коду аi і цифр оберненого коду аi|| має наступний вид: аi + аi|| = p – 1, i = –k, …,n... Взаємне перетворення прямого й оберненого кодів здійснюється як порозрядна операція взяття доповнення до р - 1від заданих цифр. Обернений код від’ємного дробу дорівнює його інверсному значенню й утворюється за наступним правилом: у знаковому розряді числа проставляється 1; усі інші цифри заміняються на взаємообернені. Перехід від оберненого коду до прямого є аналогічним. Функція кодування двійкових чисел в оберненому коді є наступною: Перевагою оберненого коду є простий зв'язок із прямим кодом: перетворення числа з прямого коду в обернений і навпаки є порозрядною операцією, що спрощує та прискорює перетворення чисел. Особливістю оберненого коду є те, що при одержанні суми подекуди виникає необхідність корекції результату на 2-n, оскiльки інверсне значення чисел відрізняється від їх доповнення на одиницю молодшого розряду. У оберненому коді, як і в додатковому, операція віднімання замінюється операцією додавання. Знаковий розряд і цифрова частина числа розглядаються також, як єдине ціле, унаслідок чого машина оперує з від’ємними числами, як iз неправильними дробами. Правильний знак суми виходить автоматично в процесі додавання цифр знакових розрядів операндів та одиниці переносу з цифрової частини, якщо вона є. Характерною рисою оберненого коду є наявність циклічного переносу (якщо він виникає) зі знакового розряду до молодшого розряду цифрової частини, завдяки якому здійснюється корекція суми на 2-n. Зазначена вище особливiсть обумовлена тим, що додавання здійснюється за модулем 2 – 2-n. Розглянемо 4 можливих випадки додавання двох чисел в оберненому коді за умови |A| > |B| і |A| + |B| < 1 Випадок 1. А > 0; В > 0; С > 0.
[A]о = A; [B]о = B; [С]о = С = [A]о + [B]о = А + В. Оскiльки обернений код додатних чисел не відрізняється від самих чисел, то визначення їх суми збігається з її одержанням у прямому коді. Випадок 2. А > 0; В < 0; С > 0. Сума є додатною, а тому результат повинен вийти в прямому коді: [A]о = A; [B]о = 2 – 2-n + B; [С]о = С = [A]о + [B]о = А + 2 – 2-n + В. Отримана сума відрізняється від істинної на (2 – 2-n), тобто потрібна корекція на дану величину. Корекція на 2 виходить автоматично, оскiльки для зображення 2 у розрядній сітці комп`ютеру нема місця. Корекцію на 1 молодшого розряду одержують шляхом додавання в молодший розряд суми одиниці переповнення, що виникає при додаванні цифр знакових розрядів. Тобто виконується так званий циклічний перенос. Приклад. Задано А = 0,10101, В = –0,01001. Знайти [C]о [A]о = 0,10101 [B]о = 1,10110 10,01011 ®+1 [C]о = 0,01100 Випадок 3. А < 0; В > 0; С < 0. Сума є від’ємною, а тому результат повинен вийти в оберненому коді: [A]о = 2 – 2-n + A; [B]о = B; [С]о = С = [A]о + [B]о = 2 – 2-n + A+ В. Тобто результат корекції не вимагає. Приклад. Задано А = –0,10101, В = 0,01001. Знайти [C]о [A]о = 1,01010 [B]о = 0,01001 [C]о = 1,10011 У другому та третьому випадках, при А = В результат дорівнює –0, тобто маємо 1,11...11.…11. Випадок 4. А < 0; В < 0; С < 0. Сума є від’ємною, а тому результат повинен вийти в оберненому коді: [A]о = 2 – 2-n + A; [B]о = 2 – 2-n +B; [С]о = 2 – 2-n + С = [A]о + [B]о = 2 – 2-n + A+ 2 – 2-n + В. Як і в другому випадку, необхідна корекція результату тільки на одиницю молодшого розряду, оскiльки для зображення 2 у розрядній сітці комп`ютеру нема місця. Виправлення вноситься аналогічно другому випадку. [A]о = 1,01010 [B]о = 1,10110 11,00000 ®+1 [C]о = 1,00001 Очевидно, що в усіх розглянутих випадках додавання кодів, доданки можна поміняти місцями, і при цьому код суми не зміниться. Ланцюжок циклічного переносу, необхідний для реалізації корекції суми на величину 2-n, являє собою ланцюг переносу зі знакового розряду суматору до молодшого розряду, тобто суматор замикається в кільце. Даний ланцюжок може залишатися постійно замкнутим, оскiльки перенос зі знакового розряду виникає тільки тоді, коли дійсно необхідно реалізувати корекцію суми. Час, необхідний для одержання результату, зростає незначно.
У цілому, за апаратурними витратами, часом реалізації та структурою алгоритму, алгебраїчне додавання обернених кодів є еквівалентним додаванню додаткових кодів. Обернений код є досить зручним для виконання операції алгебраїчного додавання, якщо врахувати простоту перекладу від’ємних чисел із прямого коду в обернений і навпаки. Виконувати операції множення та ділення в оберненому коді нема смислу. У оберненому коді, переповнення розрядної сітки можливе при неправильному виборі масштабних коефіцієнтів у першому й четвертому випадках. Ознакою переповнення, як і в інших кодах, є відмінність знаку результату від знаків доданків. Таким чином, для заміни операції вiднiмання операцією додавання необхідно зробити спеціальне кодування чисел. У сучасних комп`ютерах, операції в режимі фіксованої коми виконуються, як правило, над цілими числами. Від’ємні числа зберігаються в оперативній пам'яті та беруть участь в операціях у оберненому коді. Оскільки операції виконуються над числами, вирівняними по молодших розрядах, то операнди, якими є додатні цілі числа, що займають тільки частину розрядів слова, мають у всіх розрядах ліворуч старшої значущої цифри 0, а від’ємні – одиниці. За необхідності, подовження операндів убік старших розрядів здiйснюється простим додаванням розрядів, вміст яких дорівнює вмісту знакового розряду (0 або 1). Знакові розряди беруть участь в операціях додавання-вирахування нарівні з цифровими. Попередній аналіз знакових розрядів операндів не здiйснюється, оскiльки, при виконанні команди віднiмання, від'ємник автоматично перетвориться на інверсний код. По закінченні процесу додавання, здiйснюється аналіз результату та вироблення його ознаки: більше, менше, дорівнює 0, переповнення. КОНТРОЛЬНІ ПИТАННЯ
1. Як утворюються та чим відрізняються прямі коди додатних і від’ємних чисел? 2. У чому полягають правила, переваги та недоліки додавання чисел у прямому коді? 3. Чи має у прямому коді вагу знаковий розряд та як розглядаються знаковий розряд і цифрова частина числа (як єдине ціле чи окремо)? 4. Як утворюються додатковi коди додатних i від’ємних чисел? 5. Сформулювати правила додавання чисел у додатковому коді. 6. Проаналiзувати, чи має у додатковому коді знаковий розряд вагу? 7. Обгрунтувати, чи розглядаються у додатковому коді знаковий розряд і цифрова частина числа як єдине ціле? 8. Пояснити, як виконується операція віднімання у додатковому коді. 9. Назвати ознаки переповнення при виконанні операції алгебраїчного додавання в додатковому коді. 10. Пояснити, як утворюється модифікований додатковий код числа та сформулювати його призначення. 11. Назвати ознаки переповнення при виконанні операції додавання в модифікованому додатковому коді та пояснити, як можна його позбутися. 12. Сформулювати, як утворюються оберненi коди додатних i від’ємних чисел. 13. Назвати правила додавання чисел у оберненому коді. 14. Чи має у оберненому коді знаковий розряд вагу? 15. Як розглядаються у оберненому коді знаковий розряд і цифрова частина числа (як єдине ціле чи окремо)? 16. Як виконується операція віднімання у оберненому коді? 17. Якими є ознаки переповнення при виконанні операції додавання в оберненому коді й як позбутися переповнення?
|
|||||||
Последнее изменение этой страницы: 2017-02-21; просмотров: 273; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.196.211 (0.019 с.) |