Главная Обратная связь

Дисциплины:






ЛАБОРАТОРНА РОБОТА №1



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

 

МЕТА РОБОТИ

1.1 Ознайомитись із зображенням чисел в комп’ютерній арифметиці в форматі з фіксованою комою.

1.2. Ознайомитись із зображенням чисел в комп’ютерній арифметиці в форматі з плаваючою комою.

1.3. Ознайомитись з представленням чисел в прямому, оберненому та додатковому кодах.

1.4. Ознайомитись з виконанням операцій додавання та віднімання чисел з фіксованою комою.

1.5. Ознайомитись з виконанням операцій додавання та віднімання чисел з плаваючою комою.

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

Форми представлення чисел в комп’ютерах

Будь-яке число можна записати різними формами, наприклад Х=0,0357 можна записати так

357*10-4; 0,036; 3,57*10-2 і т.д.

Різноманітність форми у записі одного числа може служити причиною труднощів для роботи цифрових пристроїв. Щоб цього уникнути використовують форму запису числа.

Сучасні універсальні ККС використовують дві форми представлення чисел:

З фіксованою комою Блукаючою комою
Природнича або натуральна Нормальна або експоніціальна (научна)
1256 – ціле число 0,003572 – правильні дроби 4,897 – неправильні дроби 12560=1,256*104=0,1256*105=125600*10-1

Наприклад, машинне число можна записати так

А=[А]КА , де [А] – символ умовного позначення машинного числа КА – масштабований коефіцієнт, величина якого залежить від форми представленого числа

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

Зображення числа має постійну розрядність, а положення коми фіксується в визначеному місці відносно розрядів числа [або перед старшим розрядом(рис.1.) або після молодшого(рис.2.)]

Вірний дріб -1<[AФ]<1, то А=[AФА

Діапазон чисел від ±(1-2-31) до ±2-31

“0”(“+”)→ Знак, 2-1 2-2 2-3 2-4 … … … … … 2-31
“1”(“-”)→
  … … … … …
Рис.1. Числа, які менші одиниці

0.111…1=1-2-31 – найбільше позитивне число

0.000…1=2-31 – найменше позитивне число

Діапазон чисел 1≤|x|≤231-1

“0”(“+”)→ Знак 230 229 228 227 … … … … … 20 ,
“1”(“-”)→
  … … … … …
Рис.2. Тільки цілі числа

При виконанні на ЕОМ обчислювань необхідно щоб усі вихідні та отримані дані не виходили за діапазон чисел, які представлені в розрядній сітці. Для цього при програмуванні задачі дані записуються з відповідними масштабними коефіцієнтами. Використання чисел з фіксованою комою дозволяє спростити схеми ЕОМ, підвищити її швидкодію, але створює труднощі при програмуванні.



 

 

Представлення числа з блукаючою комою в загальному вигляді має вид:

X=SP*q ; |q|<1 q – мантиса числа Х; p – порядок; s – основа характеристики (системи числення)

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

Х=2Р*q ; |q|<1

Розглянемо приклад: Нехай слово має 32 2х-розрядів, а число “Х” зображується у машині 2м словом а0в0в1…в6а1а2…а24 та має такий формат

             
а0 в0 в1 в6 а1 а2 а24
Знак Знак порядку Порядок Мантиса

в0…в6 – використовуються для представлення порядку, при цьому розряд в0 зображує знак порядку, розряди в1…в6 – модуль порядку.

Розряди а0…а24 – зображують мантису, де а0 – знак мантиси.

Двійкове число Х=2Р*q називають нормалізованим, якщо у старшому розряді мантиси записана “1”.

Порядок 0…в6) має 7 розрядів, то порядок може бути від -63 до 63

 
=63

Тому у розрядній сітці може бути представлено число від -263 до -264 і від 263 до 2-64, що значно перевищує діапазон чисел з фіксованою комою для 32-розрядних слів.

Представлення чисел з блукаючою комою використовується в ККС, які обслуговують рішення задач науково-технічного характеру. В МП-х засобах ОТ (МП має короткий формат даних, наприклад 16р.), звичайно використовують форму представлення чисел з фіксованою комою. Робота ж з числами з блукаючою комою в МП засобах реалізується як окремий режим, який забезпечується програмним способом..

Нормальна форма представлення числа має великий діапазон відображення чисел та є основною в сучасних ЕОМ

Кодування чисел та знаків в комп’ютерах

В ККС для виконання операцій числа кодуються спеціальними машинними кодами - прямий, обернений, додатковий та модифікований коди. Розглянемо як двійкові числа зображаються цими кодами.

Прямий код. Вираз для створення прямого коду двійкового числа

X = 0, α 1, α 23... α n має вигляд:

х, якщо х ≥ 0

Хпр =

1 – х, якщо х ≤ 0

Приклад 1. Х1 = + 0,1101, Хпр = 0,1101

Х2 = -0,10101, Хпр = 1- (0,10101) = 1,10101

 

Обернений код. Вираз для створення цього коду такий

х, якщо х ≥ 0

Хоб =

10 + х – 10 n, якщо х ≤ 0

Приклад 2. Х = - 0,100110

Хоб. = 10 – 0,100110 – 0,000001 = 1,011001

Порівнюючи число X з його Хоб, можна вивести таке правило: щоб записати від'ємне число в оберненому коді, потрібно у знаковому розряді цього числа поставити „1", а у числових розрядах „0", замінити на „1", а „1" на „0".

Приклад 3. Х = 0,110110, Хоб = 0,110110

Отже, для додатних чисел X = Хоб

Додатковий код. Вираз для створення додаткового коду двійкового числа X такий:

х, якщо х ≥ 0

Хдод =

10 + х, якщо х < 0

Приклад 4. X = -0,101010, Хдод = 10 + (- 0,101010) = 1,010110

Порівнюючи число X з його Хдод. Можна вивести правило: щоб записати від'ємне число у додатковому коді потрібно його записати спочатку у оберненому коді, а потім до молодшого розряду отриманого результату додати „1".

Для додатних чисел X = Хдод

Приклад 5. X = 0,1011101, Хдод = 0,1011101

Модифіковані коди. З точки зору побудови АЛП вони є зручними для виявлення переповнення розрядної сітки, які можуть бути отримані при виконанні операції додавання чисел. Ці коди відрізняються від простих машинних кодів тим, що на зображення знаку відводиться два розряди : „+" - зображається „00", а „-" - зображається „11”. Перетворення двійкових чисел у модифіковані прямий, обернений та додатковий коди виконуються за правилами, які були розглянуті раніше.

Приклад 6. X1 = + 0,1101101, Х2 = - 0,1101101 записати у додатковому та оберненому модифікованих кодах.

X1 прм = 00,1101101, X1 об.м = 00,1101101, Х1 дод. м = 00,1101101

Х2 прм = 11,1101101, Х2о6.м = 11.1101101, Х2 дод. м = 11,1101101

Перетворення чисел в заданий код здійснюється автоматично як при введенні чисел в ЕОМ, так і при виконанні операцій.

Алгоритми виконання операцій додавання і віднімання двійкових чисел

Алгоритми виконання операцій додавання і віднімання в позиційній однорідній системі числення з основою k відповідає алгоритмам в звичайній десятковій системі числення.

Результати операцій додавання / віднімання цифр х та у в одному розряді представляються двома цифрами:

ü цифрою q результат операції у даному розряді;

ü цифрою р перенесення в старшому розряді.

Правила формування цифр q та р для будь-якого k можна записати наступним чином.

а) для додавання б) для віднімання

x + y, якщо х + у < k x - y, якщо х ≥ у

q = q =

х + у – k, якщо х + у ≥ k k + х – у, якщо х < у

 

0, якщо х + у < k 0, якщо х ≥ у

р = р =

1, якщо х + у ≥ k - 1, якщо х < у

Функції q (x, y) та р (х, у) для операцій додавання/віднімання для k =2 можна представити таблично, рис. 1.1.

а) додавання б) віднімання

рис.1.1.

Оскільки при виконанні операцій додавання / віднімання може виникнути переповнення розрядної сітки, тобто результат буде сформовано неправильно, тому використовують модифіковані коди. Особливістю цих кодів є наявність двох знакових розрядів, у яких знак відображається двома однаковими цифрами. Ці цифри обробляються при виконанні також як і числові розряди. Поява в знакових розрядах модифікованого коду різних цифр"01" або „10" свідчать про переповнення розрядної сітки.

Приклад 1. х = -9 у = -3

Хпрм = 11,1001; Упрм = 11,0011

Хоб.м = 11,0110; Уоб.м = 11,1100

Хоб.м – 11,0110

+ +

Уоб.м – 11,1100

11,0010

циклічний перенос + 1

Zоб.м – 11,0011

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

Zпрm = 11,1100 це відповідає числу-12.

При виконанні модифікованого додаткового коду може з'явитися така комбінація 11.000...0 - це фіксується як переповнення розрядної сітки, тому що отримане число не вміщається в розрядній сітці.

Приклад 2. х = -7 у = -9 z = -16

Хпрм= 11,0111, Упрм= 11,1001

Хдк,м – 11,1001

+ +

Удкм - 11,0111

Zдкм - 11,0000

Бачимо, що для представлення числа -16 потрібно 5 двійкових розрядів.

Zдкм - 11,0000

Zп.к.м - 11,01111

____ + 1

11,10000, що відповідає числу -16.

Слід відмітити, що модифікований код дозволяє формувати вірний знак результату навіть при появі переповнення. Цей знак зберігається у другому (старшому) знаковому розряді.

01 - свідчать про позитивне переповнення розрядної сітки

10 - свідчать про від'ємне переповнення розрядної сітки.

Алгоритм додавання / віднімання чисел з фіксованою комоюу прямих та додаткових кодах розглянемо на прикладах.

Приклад 3. х = ±15, у = ±7

а) х + у Хпрм = Хдкм = 00,01111 Упрм = Уд.к.м = 00,00111

z = 22

00,01111

+

00,00111

00.10110, що відповідає числу 22.

b) х - у; Хд.к.м = 00,01111; У д.к.м = 11,11001

z = 8

відкидається 1

00,0111

+

11,11001

Zп.к.м = 00,01000, що відповідає +8

с) - х + у ; Хд.к.м = 11,10001; У д.к.м = 00,00111

z = - 8

11,10001

+

00,00111

Zп.к.м = 11,11000 → Znp.м = 11,01000, що відповідає -8

d) –x - y; Хд.к.м = 11,10001; У д.к.м = 11,11001;

z = -22

відкидається 1

11,10001

+

11,11001

Zп.к.м = 11,01010 → Znp.м = 11,10110, що відповідає -22

Алгоритм додавання/ віднімання чисел з ,,блукаючою" комою будемо

розглядати для k = 2, тоді операнди X та У можна записати так X = 2А х, У = 2­Ву, де А, В порядок операндів; X, У, які представлені „m" розрядами;

Мантиси х та у є n - розрядні правильні нормалізовані дроби, тобто 1/2≤|х|<1, 1/2≤|у|<1.

Операція додавання (віднімання) з „блукаючою комою" здійснюється в декілька етапів:

— вирівнюються порядки доданків; молодший порядок збільшується до більшого, при цьому відбувається корекція мантиси числа, яке перетворюється;

— виконується перетворення мантис в додаткові коди;

— виконується додавання мантис за правилами, які розглядались для чисел з фіксованою комою;

— до отриманої суми дописується порядок доданків і якщо буде потрібно виконується нормалізація результату. Можливі два випадки денормалізації:

а) денормалізація вліво відповідає переповненню розрядної сітки;

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

Приклад 4. Потрібно додати два числа X = + 0,10101 ∙ 10101; У = - 0,11001 ∙ 10011 - Вирівнюємо порядок числа В до порядку числа А

У = - 0,0011001 ∙ 10+101

Оскільки

РХдоп.м = 00,101

+

РУдоп.м = 11,101

00, 010

Рх > Ру на 2, то виконуємо зсув вправо на 2р. мантиси числа У.

 

— Додаємо мантиси чисел X та У в модифікованому додатковому коді:

Хдм = 00,1010100

+

Улм = 11,1100111

00,0111011 це прямий код додатної мантиси.

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

Запишемо результат: 00,1110110 • 10100

Цей результат буде розміщено в розрядній сітці обчислювального пристрою.

 

3. ДОМАЩНЄ ЗАВДАННЯ.

3.1. Вивчити за конспектом та підручником правила отримання прямих, обернених та додаткових модифікованих кодів як для додатних так і для від’ємних чисел.

3.2. Записати у прямому, оберненому та додатковому кодах числа ± 15 та ±13.

3.3. Записати у прямому, оберненому та додатковому модифікованих кодах числа ±22 та ±27.

ВИКОНАННЯ РОБОТИ.

4.1. Скласти цілі 10-ві числа А, В, С, D за наступним правилом

А = 27 + (# - 1)24 + **;

B= 28- (# - l)24 - **;

С= 27 + (# - 1)24 + @;

D = 28 - (# - l)24- @

# - друга цифра номера групи

** - дві останні цифри студентського квитка

@ - дорівнює сумі цифр у числі # 19**

Наприклад, число # 19** складає 41927, тоді @ = 4+1+9+2+7=23

4.2. Перевести числа, отримані в п.4.1. та 4.2., в двійкову систему числення

4.3. Записати у прямому, оберненому та додатковому модифікованих кодах двійкові числа ±А, ±В, ±С, ±D, які були отримані при виконанні завдання п.4.2. Результат представити у вигляді наступної таблиці:

Число Прямий модифікований код Обернений модифікований код Додатковий модифікований код
     
     

4.4. Скласти цифрові діаграми виконання операцій А+В; -В+С; С-D; -С-А, використовуючи модифіковані прямий, обернений та додатковий коди. Відмітити можливі випадки переповнення розрядної сітки. Зробити перевірку отриманих результатів, шляхом їх переведення в десяткову систему. Результати виконання записати у таблицю, наприклад:

А + В Обернений модифікований код Додатковий модифікований код
А о6 м 00,10000100 А дк м 00,10000101
В об м 00,11111100 В дк м 00,11111100
Z об м 01,10000000 Z дк м 01,10000001
Переповнення розрядної сітки потрібно збільшити розрядність
Z об м = 00,110000000 Zдк м = 00,110000001

5. КОНТРОЛЬНІ ЗАПИТАННЯ.

5.1. Які форми представлення двійкових чисел ви знаєте, наведіть приклади.

5.2. Переваги та недоліки представлення чисел з фіксованою (блукаючою) комою.

5.3. Яке двійкове число називається нормалізованим?

5.5. Запишіть етапи виконання отримання прямого, оберненого та додаткового коду для додатного (від’ємного) числа.

5.7. За допомогою чого в ККС можна від слідкувати переповнення розрядної сітки. Що для цього використовується.

5.8. Запишіть етапи виконання додавання / віднімання двійкових чисел з блукаючою комою.

5.9. Додати в модифікованому додатковому коді двійкові числа з блукаючою комою:

a) A = - 0,110011 ∙ 211; В = - 0,100001 ∙ 2 -10

b) А = 0,101101 ∙ 2101; В = - 0,100101 ∙ 2 -10

c) А = - 0,100010 ∙ 2-11; В = 0,111101 ∙ 2 -111

6. ЗМІСТ ЗВІТУ

6.1. Тема та мета практичної роботи.

6.2. Виконання домашнього завдання.

6.3. Короткий звіт за пунктами виконаної лабораторної роботи.

6.4. Відповіді на контрольні запитання.

 





sdamzavas.net - 2019 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...