Варіанти завдання
Перевести від’ємне дійсне число:
-
№
код
прямий -> додатковий
зворотній -> додатковий
додатковий -> прямий
додатковий -> зворотній
прямий -> додатковий
зворотній -> додатковий
додатковий -> прямий
додатковий -> зворотній
прямий -> додатковий
зворотній -> додатковий
додатковий -> прямий
додатковий -> зворотній
зворотній -> додатковий
додатковий -> прямий
додатковий -> зворотній
Контрольні питання
Дайте визначення прямого, зворотного, додаткового кодів.
Яким чином отримуються числа у прямому, зворотному, додатковому кодах?
Як виконуються операції додавання та віднімання у кодах?
Чи можливо замінити операції (віднімання додаванням)?
Лабораторна робота 1.5 Форми представлення чисел в комп’ютері. Фіксована та плаваюча коми.
Мета лабораторної роботи – ознайомитись з формами представлення чисел, отримати і закріпити практичні навички з побудови алгоритмів і програм.
Короткі теоретичні відомості
Будь яка інформація, подається в ЕОМ, перетвориться у двійковий код. Це можуть бути тексти, зображення, числа, звуки і т.і. Наприклад, всі клавіші клавіатури комп’ютера закодовані 8-розрядними двійковими кодами таким чином, що будь яка буква латинського та російського алфавіту, як велика, так і маленька, цифри десяткової системи числення, знаки пунктуації та інші службові символи мають свій індивідуальний двійковий код. Так як двійкове 8-розрядне число (байт) може мати 28 = 256 комбінацій, то цього достатньо для кодування одразу декількох текстових алфавітів. Зображення на екрані комп’ютера представляється у вигляді растрового розташування точок (пікселів). Інформація про вміст кожної точки зберігається в одному 8-розрядному двійковому коді. Це дозволяє відображати чорно-білі зображення з 256-ю градаціями яскравості. Для кольорових зображень кожного з 3-х основних кольорів також кодується 1 байтом, таким чином на кожну кольорову точку виділяється 3 байта інформації. На кодування звукового елементу - ноти потрібно від декількох одиниць до десятків байт і т.д. Одна сторінка тексту має інформаційний об’єм ~3 Кбайт, один кольоровий екранний кадр містить вже ~3 Мбайт, а 1,5-годинний кольоровий телевізійний фільм ~ 300 Гбайт.
Розглянемо процес кодування чисел в комп’ютері. Серед чисел, які ми використовуємо, зустрічаються натуральні, цілі, раціональні, ірраціональні. В обчислювальних машинах застосовуються дві форми представлення чисел:
- природна форма або форма з фіксованою комою (точкою);
- нормалізована форма або форма з плаваючою комою (точкою);
З фіксованою комою числа зображуються у вигляді послідовності цифр з постійним для всіх чисел положенням точки, яка відділяє цілу частину від дробової. Наприклад, 32,54; 0,0036; –108,2. Ця форма проста, природна, але має невеликий діапазон представлення чисел і тому не завжди припустима при обчисленнях. Якщо у результаті операції отримаємо число, яке виходить за дприпустимий діапазон, відбувається переповнення розрядної сітки і подальші обчислення втрачають сенс. У сучасних комп’ютерах форма представлення чисел з фіксованою комою використовується тільки для цілих чисел.
З плаваючою точкою числа зображуються у вигляді X = ±M×P±r, де M - мантиса числа (правильна дріб в межах 0,1 ≤ M < 1), r - порядок числа (ціле), P - основою системи числення. Наприклад, наведені вище числа з фіксованою крапкою можна перетворити в числа з плаваючою точкою так: 0,3254×102, 0,36×10–2, –0,1082×103. Нормалізована форма представлення має великий діапазон чисел і є основною у сучасних ЕОМ.
Будь яке десяткове число, перед тим як попадає в пам'ять комп’ютера, перетворюється за схемою:
X10→X2→X2 = M2×102r |
Після цього виконується ще одна важлива процедура:
мантиса з її знаком замінюється кодом мантиси з її знаком;
порядок числа з його знаком замінюється кодом порядку з його знаком.
Вказані коди двійкових чисел - це образи чисел, які і сприймають обчислювальні пристрої.
Кожному двійковому числу можна поставити у відповідність декілька видів кодів. Існують наступні коди двійкових чисел:
Прямий код. Прямий код двійкового числа (а це або мантиса, або порядок) створюється за таким алгоритмом:
1.Визначити дане двійкове число - воно або ціле (порядок), або правильна дріб (мантиса). 2.Якщо це дріб то цифри після коми можна розглядати як ціле число. 3.Якщо це ціле та додатне двійкове число, то разом з додаванням 0 у старший розряд число перетворюється у код. Для від’ємного двійкового числа перед ним ставиться одиниця.
Наприклад: число X2 = –0,1011012→ код числа X пр = 1101101; число Y2 = +0,11011012→код числаYпр=01101101.
Зворотній код. Зворотній код додатного двійкового числа співпадає з прямим кодом, а для від’ємного числа потрібно, виключаючи знаковий розряд, у всіх інших розрядах нулі замінити на одиниці і навпаки. Наприклад: число X2 = –0,101012 → Xпр =110101→Xзв=101010; числоY2=+0,11012→Yпр=01101=Yзв.
Додатковий код. Додатковий код додатного числа співпадає з його прямим кодом. Додатковий код від’ємного числа створюється за допомогою додавання 1 до зворотного коду.
Наприклад: число X2 = –0,100102 → Xпр = 110010 → Xзв = 101101 → Xдод = 101110; число Y2 = +0,1011 → Yпр = 01011 = Yзв = Yдод.
Додавання та віднімання двійкових чисел. Додавання чисел, а також віднімання чисел у зворотному або додатковому кодах виконується з використанням звичайного правила арифметичного додавання багато розрядних чисел. Це правило розповсюджується і на знакові розряди чисел. Відмінність зворотного та додаткового кодів пов’язано з тим, що потім роблять з одиницею переносу з старшого розряду, який зображає знак числа. При додаванні чисел у зворотному коді цю одиницю потрібно додати до молодшого розряду результату, а у додатковому коді одиниця переносу з старшого розряду ігнорується. Це очевидно, якщо пригадати, що додатковий код з зворотного отримується як раз додаванням одиниці. Приклад: скласти числа +18 та –7.
|
Як і у зворотному, так і у додатковому кодах результати додавання співпали і дорівнюють 10112= 1110.
Множення та ділення двійкових чисел в ЕОМ виконується у прямому коді, а їх знаки використовуються лише для визначення знаку результату. Так само як в математиці, множення та ділення зводиться до операцій зсувів та додавань (з урахуванням знаку числа).
Отримані коди мантиси та порядок для кожного числа вставляються в комірки пам’яті ЕОМ. Для кожної цифри, яка входить в код, в комірці пам’яті відводиться своє окреме місце. Одна комірка пам’яті складається з 8 біт, тобто 1 байта. У сучасних комп’ютерах 2 байта виділяються для одного машинного слова. В останніх моделях ПК обробка інформації ведеться двійковими словами, які містять 4 байта. Числа з фіксованою крапкою мають формат одного слова, а числа з плаваючою крапкою – формат подвійного слова.
Приклад: Дано число з плаваючою крапкою –0,625×108. Потрібно перетворити його в машинний код і заповнити 32-разрядну ячейку пам’яті. Мантиса числа 0,62510 = 0,1012. Так як порядок чисел може бути як додатнім, так і від’ємним, то машинний порядок зміщується відносно природного таким чином, щоб весь діапазон машинних порядків змінювався від 0 до максимуму, який визначається кількістю розрядів, які виділяються для розміщення чисел порядку. В 32-разрядній комірці цифри порядку замінюють 7 розрядів старшого байта, а восьмий розряд використовується для фіксації знаку числа. Сім двійкових розрядів дозволяють розмістити діапазон десяткових розрядів від –64 до +63. Якщо позначити машинний порядок через R, а природній через r, то зв'язок між ними буде такий: R10 = r10+6410. Для двійкової системи числення R2 = r2 + 10000002. У нашому прикладі порядок r дорівнює 810 = 10002, отже R2 = 1001000. У двійковій системі вихідне число виглядає так: –0,101х1001000. Запис цього числа у 32-розрядній комірці представлено у таблиці:
|
Знак числа |
Порядок |
Мантисса |
||||||||||||||
№ разряда |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
••• |
1 |
0 |
Число |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
