Загальнi поняття про операцiю зсуву

Лабораторна робота 5

 

 

Тема: Виконання операцiї зсуву в прямому, додатковому й оберненому кодi у сучасних комп`ютерах.

Мета роботи:Опанувати на практиці наступні ключові питання, пов`язані з виконанням операцiї зсуву в прямому, додатковому й оберненому кодi у сучасних комп`ютерах: технологія й обмеження здійснення зсуву двiйкового числа на k розрядiв лiворуч i праворуч; значення, що заносяться до розрядiв, якi звiльняються в пiдсумку зсуву двiйкового числа в прямому, додатковому й оберненому кодi на k розрядiв лiворуч i праворуч.

Основні знання й уміння:

– знати особливості технології виконання операцiї зсуву в прямому, додатковому й оберненому кодi у сучасних комп`ютерах;

– виконувати операцiю зсуву в прямому, додатковому й оберненому кодi.

1. ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ

 

Загальнi поняття про операцiю зсуву

 

Операцію зсуву застосовують при виконанні: додавання в машинах iз плаваючою комою; множення та ділення в комп`ютерах iз фiксованою та плаваючою комою. Оскiльки в усіх зазначених випадках здiйснюється зсув мантис, то достатньо розглядати тільки числа з фіксованою комою.

1.2 Зсув прямого коду додатних та від’ємних чисел на k розрядів праворуч і ліворуч

 

Зсув прямого коду числа на k розрядів праворуч еквівалентний множенню зазначеного числа на 2-k.

Оскільки при зсуві прямого коду числа праворуч, молодші розряди можуть виходити за межі розрядної сітки комп`ютеру та втрачатися, то погрішність подання зсунутого коду числа буде мати від’ємний знак для додатних чисел і додатний знак для від’ємних чисел (для зменшення погрiшностi, необхідне округлення чисел).

При зсуві прямого коду від’ємного дробу, зсувається тільки його мантиса, а знак залишається без зміни.

Розглянемо приклад зсуву прямого коду числа на k розрядів праворуч.

Нехай заданi: число А = 1,011010; кiлькiсть розрядiв k = 1.

Результат зсуву числа А на k розрядiв праворуч: 2-1*А= 1,0011001.

Зсув прямого коду числа на k розрядів ліворуч еквівалентний множенню зазначеного числа на 2k. Указана операція буде коректною доти, поки старші значущі цифри коду не почнуть виходити за межі розрядної сітки (поки число за абсолютною величиною не стане більшим одиницi). При зсуві ліворуч, вивільнені праворуч розряди набувають значення нуля.

Розглянемо приклад зсуву прямого коду числа на k розрядів лiворуч.

Нехай заданi: число А = 1,011010; кiлькiсть розрядiв k = 1.

Результат зсуву числа А на k розрядiв лiворуч: 21*А= 1,110100.

1.3 Зсув додаткового коду додатного та від’ємного числа на k розрядів праворуч і ліворуч

 

Зсув додатного числа ліворуч або праворуч у додатковому коді нічим не відрізняється від зсуву додатного числа в прямому коді.

Зсув від’ємного числа А, записаного інверсним (додатковим або оберненим) кодом передбачає перетворення інверсного коду від’ємного числа А на інверсний код від’ємного числа А*2-k (при зсуві праворуч) або А*2k (при зсуві ліворуч). Тобто зсув додаткового коду від’ємного числа на k розрядів праворуч має перетворити [A]д = 2 + A на [A * 2-k]д = 2 + A * 2-k.

Якщо виконувати механічну операцію зсуву коду числа [A]д на k розря-дів праворуч, то [A]д * 2-k = (2 + A) * 2-k = 2-(k-1) + A * 2-k , що відрізняється від необхідного результату на величину [A * 2-k]д – [A]д * 2-k = 2 – 2-(k-1).

Корекція виконується шляхом заповнення старших розрядів, що звіль-нилися, знаковими одиницями, оскiльки: 2 – 2-(k-1) = 1 + 2-1 + 2-2 + … + 2-(k-1)

Приклад зсуву додаткового коду числа на k розрядів праворуч: зсув [A]д = 1,011011000 на 3 розряди праворуч дає число [A * 2-3]д = 1,111011011.

При наступних зсувах праворуч, виникає помилка, для зменшення якої виконують округлення результату.

Додатковий код від’ємного числа, зсунутий на k розрядів ліворуч, повинен дорівнювати [A * 2k]д = 2 + A * 2k.

Безпосереднє множення [A]д на 2k дає величину [A]д * 2k = (2 + A) * 2k = 2(k+1) + A * 2k. Для одержання правильного коду, необхідне виправлення на величину [A * 2k]д – [A]д * 2k = 2 – 2(k+1), яке вноситься автоматично (через вiдсутнiсть розрядів для запису цілих чисел).

Вивільнені праворуч розряди заповнюються нулями.

Зсув є припустимим доти, поки в розряді праворуч від коми не з'явиться код «нуль».

Розглянемо приклад зсуву додаткового коду числа на k розрядів лiворуч. Нехай задані [A]д = 1,11011 і k = 2, тоді: [A * 2k]д =1,0110.

1.4 Зсув оберненого коду додатного та від’ємного числа на k розрядів праворуч і ліворуч

 

Зсув додатного числа ліворуч або праворуч у оберненому коді нічим не відрізняється від зсуву додатного числа в прямому коді.

Ще раз нагадаємо, що під зсувом від’ємного числа А, записаного інверсним (додатковим або оберненим) кодом, розуміють перетворення інверсного коду від’ємного числа А на інверсний код від’ємного числа А*2-k (у випадку зсуву праворуч) або А*2k (у випадку зсуву ліворуч).

При зсуві праворуч від’ємних дробів, представлених оберненим кодом, необхідно одержати наступну величину:

[A * 2-k]про = 2 – 2-n + A * 2-k.

При механічному зсуві, одержимо наступний код:

[A]про * 2-k = (2 – 2-n + A) * 2-k = (2 – 2-n) * 2-k + A * 2-k

Тобто необхідне виправлення на величину

[A * 2-k]про – [A]про * 2-k = (2 – 2-n) – (2 – 2-n) * 2-k =

= (1 + 2-1 + 2-2 + … + 2-n+1 + 2-n) – (2-k + 2-k-1 + … + 2-n +2-n-1 + … 2-n-k) =

= 1 + 2-1 + 2-2 +…+ 2-k+1 – 2-n-1 –2-n-1...

Корекція здiйснюється шляхом заповнення тих старших розрядів, що звільнилися, знаковими одиницями.

Одиниця у знаковому розряді відновлюється після кожного зсуву числа на 1 розряд (залишається нерухомою), а тi молодші від’ємні одиниці коду числа, що виходять за межі розрядної сітки, не враховуються (відкидаються).

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

Розглянемо приклад зсуву оберненого коду числа на k розрядів праворуч. А саме, результатом зсуву числа [A]про = 1,01011 на 2 розряди праворуч буде наступне значення: [A * 2-2]про = 1,11010.

При зсуві ліворуч від’ємного дробу, що заданий оберненим кодом, повинен вийти наступний дріб: [A * 2k]про = 2 – 2-n+ A * 2k .

Множення на 2k оберненого коду числа дасть значення [A]про* 2k = 2k+1 – 2k-n + A * 2k, що відрізняється від правильного значення на величину [A * 2k]про – [A]про* 2k = (2 – 2k+1) + (2k-n – 2-n).

Виправлення вноситься в наступний спосiб: виправлення на величину (2 - 2k+1) вноситься автоматично (старші розряди виходять за межі розрядної сітки); виправлення на величину (2k-n – 2-n) можна внести, заповнюючи ті молодші розряди, що звільнилися, одиницями.

Указане заповнення можна розглядати як результат дії циклічного переносу зі знакового розряду до молодшого розряду. Тобто, при кожному зсуві, всі цифри зображення дробу циклічно зміщаються ліворуч на 1 розряд, а знакова одиниця по ланцюжку циклічного переносу зміщається в розряд 2-n.

Розглянемо приклад зсуву оберненого коду числа на k розрядів лiворуч. Нехай заданi [A]про = 1,11010 і k = 2, тодi: [A * 2k]про = 1,01011.

Наведемо ряд важливих висновків.

Зсув додатного числа ліворуч або праворуч в iнверсному (додатковому або оберненому) коді є аналогічним зсуву додатного числа в прямому коді.

Зсув інверсного коду від’ємного числа А передбачає перетворення А на А*2-k у випадку зсуву праворуч або на А*2k у випадку зсуву ліворуч.

Загальним правилом для зсуву дробів праворуч при поданні числа будь-яким інверсним кодом є наявність передачі зі знакового розряду до старшого цифрового розряду та відновлення знаку (знак не зсувається).

Вiдзначимо, що, при зсуві прямого коду від’ємного числа, знак також не зсувається, але передач зі знакового до старшого цифрового розряду нема.

Оскільки кількість розрядів є обмеженою, то при зсуві інверсного коду числа праворуч, починаючи з деякого моменту, виходять: значення 0 при додатному вхідному числі; значення 2 – 2-n при від’ємному вхідному числі.

 

 

Кількість зсувів правильного дробу ліворуч обмежено умовою |A*2k|<1

(зсув припустимий, поки зберігається знак результату; зміна знаку при зсуві ліворуч є ознакою переповнення, що для від’ємних і додатних чисел збіга-ється з ознакою переповнення, що виникає при додаванні кодів двох чисел).

При зсуві ліворуч оберненого кодучисла, необхідна циклічна передача вмісту знакового розряду до молодшого розряду коду 2-n і відновлення знаку.

 

2 КОНТРОЛЬНІ ПИТАННЯ

1. Пояснити практичне призначення операції зсуву.

2. Назвати особливості зсуву чисел, заданих у прямому кодi.

3. Дати визначення поняттю зсуву від’ємного числа в інверсному кодi.

4. Сформулювати особливості зсуву числа, заданого додатковим кодом.

5. Чим вирiзняється модифікований зсув ?

6. Які особливості має зсув числа, заданого в оберненому кодi ?

КОНТРОЛЬНI ЗАВДАННЯ

Виконати наведені нижче завдання, враховуючи, що числа А і В задано в таблиці 1, а номер варіанту спiвпадає з порядковим номером студента за списком у журналі.

ЗАВДАННЯ 1. Перевести число A в прямий код; скласти схему алгоритму та виконати операцiю зсуву числа А, представленого в прямому кодi: а) на два розряди лiворуч; б) на три розряди праворуч.

ЗАВДАННЯ 2. Перевести число A в додатковий код; скласти схему алгоритму та виконати операцiю зсуву числа А, представленого в додатковому кодi: а) на два розряди лiворуч; б) на три розряди праворуч.

ЗАВДАННЯ 3. Перевести число B в обернений код; скласти схему алгоритму та виконати операцiю зсуву числа B, представленого в оберненому кодi: а) на два розряди лiворуч; б) на чотири розряди праворуч.

Таблиця 1 – Iндивiдуальнi варiанти завдань

 

Номер варiанту Значення числа A Значення числа B
0.0101101 -0.0101001
0.1101011 0.0100100
-0.1010010 0.0100011
-0.1101000 -0.0010100
0.1101010 -0.0101001
-0.1110011 0.0100101
0.1101101 -0.0101010
-0.1100101 -0.0101010
0.1101010 -0.0110110
-0.1101010 0.0101010
0.1111100 -0.0101010
-0.1101010 -0.0100101
0.1010101 -0.0101010
-0.1101010 0.0001011
-0.1101011 -0.0101010
0.1010101 -0.0010101
-0.1010101 -0.0010100
0.1010100 -0.0101001
-0.1101011 0.0101001
0.1101010 -0.0101011
-0.1101010 -0.0101010
0.1101011 -0.0001010
0.1101010 -0.0101010
-0.1101011 -0.0101011
-0.1001010 0.0101010
0.1101001 -0.0001010
-0.1010010 0.0101001
-0.1100111 -0.0101001
-0.1101011 -0.0010011
0.1101101 -0.0101011

 

Додаток А

Вимоги до оформлення, захисту та оцінювання

лабораторних робіт

 

Під час захисту лабораторної роботи, студент повинен здійснити:

коротке викладення теоретичних основ і змісту визначальних етапів виконання роботи;

демонстрацію результатів роботи;

відповіді на питання викладача;

подання підсумкового звіту про виконання роботи.

Звіт з лабораторної роботи повинен містити такі складові частини:

титульний аркуш (зразок оформлення знаходиться далі, в Додатку Б);

формулювання теми та мети лабораторної роботи;

постановка індивідуального контрольного завдання на лабораторну роботу;

покроковий опис ходу виконання роботи;

опис результатів, отриманих у процесі виконання роботи;

висновки;

перелік використаної літератури.

Звіт про виконання лабораторної роботи може бути оформлений у наступній формі:

письмовий (рукописний, друкований, електронний тощо);

усний (доповідь, прокоментований показ на комп’ютері, озвучений слайдовий показ тощо);

письмово-усний.

Електронний, усний і письмово-усний варіанти звіту припускаються тільки за дозволом викладача в тому разі, якщо студент вільно володіє темою та здатен доповісти її лаконічно, дохідливо та наочно в усній формі.

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

за національною шкалою, тобто за чотирибальною системою („відмінно/5”, „добре/4”, „задовільно/3”, „незадовільно/2”);

за європейською шкалою ECTS, тобто за семибальною системою (“відмінно/A”, “добре/B,C”, “задовільно/D,E”, “незадовільно/FX,F”);

за стобальною шкалою ХНТУ.

 

Основними критеріями оцінювання лабораторної роботи є:

повнота та правильність виконання завдань;

здатність студента до творчого застосування набутих ним знань, умінь і навичок (диференціації, інтеграції та уніфікації знань; застосування правил, методів, принципів і законів у конкретних ситуаціях; інтерпретації схем, графіків, діаграм; встановлювання різниці між причинами та наслідками; аналізу та оцінювання фактів і подій, прогнозування очікуваних результатів від прийнятих рішень тощо);

здатність студента викладати матеріал на папері логічно, послідовно, з дотриманням вимог ЄСКД та ЄСТД.

 

При перевірці результатів виконання лабораторної роботи, виставляють диференційовану оцінку згідно з наступними вимогами:

„відмінно” виставляють у тому разі, якщо студент виявив: всебічні, систематизовані, глибокі знання програмного матеріалу; вміння вільно виконувати завдання; засвоєння основної та додаткової літератури, що передбачена програмою, на рівні творчого використання;

„добре”виставляють у тому разі, якщо студент виявив: повне знання програмного матеріалу; вміння виконання завдань; засвоєння основної літератури, що передбачена програмою, на рівні аналогічного відтворення;

„задовільно”виставляють у тому разі, якщо студент виявив: повне знання основного програмного матеріалу в обсязі, що є необхідним для подальшого навчання та роботи; здатність упоратися з виконанням завдань, які передбачено програмою, на рівні репродуктивного відтворення.

 

Виконання лабораторної роботи на найвищий бал (оцінку “Відмінно/5/A”) передбачає обов`язкову наявність у звіті з лабораторної роботи елементів творчої роботи над матеріалом (порівняльного огляду, аналізу, формулювання та обгрунтування раціональних пропозицій, створення презентаційних матеріалів тощо), наведення прикладів практичного використання технологій комп'ютерної арифметики.

Рекомендовано наступні види завдань творчої та практичної спрямованості:

проаналізувати приклади ефективного використання технологій комп'ютерної арифметики в комп'ютерній підтримці підприємств (організацій, установ) на основі відомостей із фундаментальної та періодичної літератури, власного досвіду;

проаналізувати поточний стан і розробити пропозиції щодо підвищення ефективності використання технологій комп'ютерної арифметики в комп'ютерній підтримці конкретного підприємства (організації, установи) за місцем проходження практики (місцем проживання, роботи тощо).

Виконання лабораторної роботи на оцінку “Добре/4/B,C”) передбачає розкриття поставленого завдання з наведенням прикладів практичного використання операційної системи.

Виконання лабораторної роботи на оцінку “Задовільно/3/D,E”) передбачає достатність розкриття поставленого завдання на основі репродуктивного відтворення матеріалів із запропонованого переліку літератури.

 

Таблиця А.1

 

Правила переведення балів внутрішньої 100-бальної шкали ХНТУ

в національну та європейську шкали

 

№ з/п Оцінка за шкалою МОН України Оцінка за національною шкалою Оцінка за шкалою ECTS Пояснення оцінки за шкалою ECTS  
 
90-100 Відмінно (5) А excellent відмінно – відмінне вико- нання лише з незначною кількістю помилок  
75-89 82-89   Добре (4) В   very good   дуже добре – вище середнього рівня з кількома помилками  
75-81   С good добре – в загальному вірне виконання з певною кіль- кістю суттєвих помилок  
60-74 67-74 Задовільно (3) D satisfactory задовільно – непогано, але зі значною кількістю недоліків  
60-66    
E sufficient достатньо – виконане за- вдання задовольняє міні-мальним критеріям  
1-59 35-59   Незадовільно (2) FX fail (із правом перескладання) незадовільно з можли-вістю повторного складан-ня    
1-34    
F fail (повторний курс) незадовільно з обов’язко-вим повторним курсом  

 

 

Додаток Б