ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.12.2021
Просмотров: 335
Скачиваний: 3
|
ЗМІСТ
Вступ…………………………………………………………………..……………..……5
1 Аналіз сучасного стану питання та обгрунтування теми………….…….………..…6
1.1 Загальні поняття про системи числення….….….….….….…..….………..….…6
1.1.1. Двійкова система числення….………….….….…..……..…………….…..6
1.1.2 Десяткова, вісімкова і шістнадцяткова системи числення………………. 7
1.1.3 Переведення чисел з однієї позиційної системи числення в іншу ……....8
1.2 Алгоритми виконання арифметичних операцій………………………...…….....9
1.2.1 Додавання чисел у прямому коді………………………………….………..9
1.2.2 Додавання чисел з фіксованою комою …………………………………... 9
1.2.3 Додавання чисел у доповняльному коді ………………………………….10
1.2.4 Додавання чисел в оберненому коді………………………………………11
1.2.5 Додавання двійкових чисел із знаком………………………………….….11
1.3 Множення і ділення двійкових чисел із фіксованою комою ……………....…13
1.3.1 Алгоритм ділення без відновлення остачі……………………………...…14
1.3.2 Операція додавання чисел, поданих у формі з «плаваючою» комою…15
1.3.3 Операція множення чисел, поданих у формі з «плаваючою» комою….15
1.4. Форми подання двійкових чисел….………………………………………….....16
2 Аналітично-розрахункова частина ……………………………………………......19
2.1 Додати в двійковій системі числення числа D=567 та E=165............….….19
2.2 Знайти різницю чисел G=800 та H=212, використовуючи алгоритм додавання в обернених кодах .….….….….….….….………….…………………... 20
2.3 Знайти добуток чисел K=814 та L=356 в двійковій системі числення на основі алгоритму множення з старших розрядів множника .…………………..…22
2.4 Знайти частку та залишок від ділення числа M=1260 на R=75, використовуючи алгоритм з відновленням залишку .…………………………..…23
2.5 Розробити програму для додавання і віднімання чисел з плаваючою комою в двійковій арифметиці для доповняльного коду. Провести тестування роботи програми ……………………………………………………………………………..26
Висновки…………………………………………………………………………….30
Перелік посилань………………………………………………...………….....…....31
Додаток А…………………………………………………………………………....32
ВСТУП
Визначною подією в розвитку обчислювальної техніки стало створення електронних машин. Електронні обчислювальні машини принципово відрізняються від обчислювальних машин інших типів (механічних, електричних, електромеханічних та ін.) як компонентами, так і формою утворювання й подання сигналів. Будь-яка форма людської діяльності, будь-який процес функціонування технічного об'єкту повязані з передачею та перетворенням інформації. Електронно-обчислювальні машини, або комп’ютери є перетворювачами інформації.
Початок двадцять першого століття ознаменувався небувалим поширенням інформаційних технологій. Людство перебуває на абсолютно новому етапі розвитку. Більшість з нас вже не може уявити своє життя без цифрових благ цивілізації. Саме тому на одну з основних ролей у суспільстві виходять кваліфіковані кадри у області інформаційних технологій.
Електронно-обчислювальні машини мають ряд переваг: компактніші, надійніші, споживають менше енергії, швидкодіючі, зручніше стикуються з зовнішніми джерелами інформації [6]. Поява комп’ютерів, які відрізнялися від ранньої обчислювальної техніки, стала можливою завдяки таким трьом технічним винаходам, як електронний перемикач, цифрове кодування інформації і запам’ятовуючі пристрої, які зберігають різні програми розв’язування задач і забезпечують можливість автоматичного виконання цих програм. Впровадження ЕОМ мало великий вплив на галузі науки і техніки, визвало процес їх математизації і комп’ютеризації.
1 АНАЛІЗ СУЧАСНОГО СТАНУ ПИТАННЯ ТА ОБГРУНТУВАННЯ ТЕМИ
1.1 Загальні поняття про системи числення
Системою числення називають сукупність прийомів запису чисел. Розрізнюють позиційні і непозиційні системи числення.
Непозиційні системи числення
Прикладом непозиційної системи числення є так звані римські цифри. У цій системі смисл кожного символу не залежить від місця, на якому він стоїть. Так запис LXXX позначає число 80. Символ X має значення 10 незалежно від його місця у запису.
Позиційні системи числення
У позиційній системі числення значення цифри в зображенні числа залежить від її положення (позиції) у послідовності цифр, що зображують число. Наприклад, запис «5237» у позиційній системі числення означає, що це число містить 7 одиниць, 3 десятки, 2 сотні і 5 тисяч.
Існують такі системи числення: двійкова, вісімкова, десяткова та шістнадцяткова та інші системи числення.
1.1.1 Двійкова система числення
Найпоширенішою для подання чисел у пам’яті комп’ютера є двійкова система числення. Для зображення чисел у цій системі необхідно дві цифри: 0 і 1. Таким чином, будь-яке число в двійковій системі числення записується у вигляді комбінації нулів та одиниць. В двійковій системі числення будь-яке число може бути представлене послідовністю двійкових чисел.
Для людини двійкова система є громіздкою у використанні. Звичною є десяткова систем числення, в якій вироблені прийоми запису чисел за «іменем», прийом додавання, віднімання, множення і ділення будь-яких чисел. У двійковому запису числа важко визначити його значення, оскільки відсутнє поняття «імені» саме двійкового числа, важко зіставити ланцюжок, особливо при великій його довжині, зі змістом. Виникає потреба перетворити двійковий запис у десятковий і навпаки. Але ці операції є необхідними тоді, коли людина змушена з якихось причин користуватися двійковою системою поза ЕОМ [8].
Двійкові числа в обчислювальних пристроях розміщуються у комірках пам'яті, причому для кожного розряду числа виділяється окрема комірка, що зберігає один біт інформації. Сукупність комірок, призначених для розміщення одного двійкового числа, називають розрядною сіткою. Довжина розрядної сітки (число комірок n у розрядній сітці) обмежена і залежить від конструктивних особливостей обчислювального пристрою. Більшість існуючих електронних обчислювальних пристроїв мають розрядні сітки, що містять 16, 32 або 64 комірок.
1.1.2 Десяткова, вісімкова і шістнадцяткова системи числення
Десяткова система числення
У звичній для нас системі запису чисел (десятковій системі числення) — для запису чисел використовуються десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. У цій системі будь-яке ціле невід’ємне число подається за допомогою степенів числа 10 (100=1; 101=10; 102=100; 103=1000; 104=10000 ...). Число 10 є основою цієї системи числення.
Вісімкова система числення
У вісімковій системі числення вживається вісім цифр: 0,1,2,3,4,5,6,7. Запис числа формується за загальним принципом: на n-й позиції (справа наліво від 0) стоїть цифра, що відповідає кількості n-х степенів шістнадцяти у цьому числі.
Шістнадцяткова система числення
В шістнадцятковій системі для зображення чисел вживається 16 цифр: від 0 до 15. При цьому, щоб одну цифру не зображувати двома знаками, приходиться вводити спеціальні позначення для цифр, більших за дев’ять.
Так старші п’ять цифр позначаються латинськими літерами:
десять – А,
одинадцять – В,
дванадцять – С,
тринадцять – D,
чотирнадцять – E,
п'ятнадцять – F.
1.1.3 Переведення чисел з однієї позиційної системи числення в іншу
Для переведення чисел із системи числення з основою p в систему числення з основою q, використовуючи арифметику нової системи числення з основою q, потрібно записати коефіцієнти розкладу, основи степенів і показники степенів у системі з основою q і виконати всі дії в цій самій системі. Очевидно, що це правило зручне при переведенні до десяткової системи числення.
Наприклад:
з шістнадцяткової в десяткову:
з вісімкової в десяткову:
з двійкової в десяткову:
Для переведення чисел із системи числення з основою p в систему числення з основою q з використанням арифметики старої системи числення з основою p потрібно:
-
для переведення цілої частини:
послідовно число, записане в системі основою p ділити на основу нової системи числення, виділяючи остачі. Останні записані у зворотному порядку, будуть утворювати число в новій системі числення;
-
для переведення дробової частини:
послідовно дробову частину множити на основу нової системи числення, виділяючи цілі частини, які й будуть утворювати запис дробової частини числа в новій системі числення [5].
Цим правилом зручно користуватися і в разі переведення з десяткової системи числення, тому що її арифметика для нас звичніша.
1.2 Алгоритми виконання арифметичних операцій
1.2.1 Додавання чисел у прямому коді
У прямому коді додаються лише додатні числа: А>0, B>0.
Операція додавання здійснюється за правилами двійкової арифметики. Основним ускладненням цього методу є можливість переповнення розрядної сітки. У цьому випадку варто передбачити можливість забезпечення додаткового старшого інформаційного розряду результату.
Особливістю цього методу є простота його реалізації. Оскільки додавання проводиться у прямих кодах, то і результат, зрозуміло, теж отримують у прямих кодах, тобто ніяких додаткових перетворень цей метод не потребує.
1.2.2 Додавання чисел з фіксованою комою
Додавання чисел з фіксованою комою у цифрових обчислювальних машинах може виконуватися в одному з машинних кодів: прямому, оберненому або доповняльному. Суму також отримаємо в одному з цих кодів. При реалізації операції додавання знаковий розряд й інформаційна частина числа розглядаються як єдине ціле, в результаті чого, з від'ємними числами машина оперує як і з додатніми. Головна перевага такого методу в тому, що правильний знак суми отримується автоматично в процесі додавання знакових цифр операндів і цифри переносу з сусіднього молодшого розряду. У випадку виникнення одиниці переносу зі знакового розряду суми її потрібно відкинути при додаванні в доповняльному коді і додати до молодшого інформаційного розряду суми при додаванні в оберненому коді(тобто виконати циклічний перенос одиниці переповнення) [4].
Для виявлення переповнення розрядної сітки при додавання вводиться допоміжний розряд у знакову частину зображення числа, що називають розрядом переповнення. Таке подання числа називається модифікованим.
Знакова частина позитивного числа містить цифри 00, а від’ємного 11. Ознакою переповнення розрядної сітки є наявність у знаковій частині цифр 01 або 10.
Додавання у прямому коді виконується тільки над числами одного знаку. Числа з різними знаками підсумовують в оберненому або доповняльному коді.
1.2.3 Додавання чисел у доповняльному коді
Доповняльні коди використовуються пр. додаванні від’ємних чисел, тобто це також є одним із методів, що замінює операцію віднімання. Виконавши операцію додавання чисел у доповняльних кодах, перевіряємо, чи був перенос у знаковому розряді. Якщо перенос був, то старшу одиницю знакового розряду відкидаємо, якщо ж переносу не було, то переходимо до перевірки умови: чи було переповнення розрядної сітки. Якщо переповнення не було, то результат переводимо у прямий код: при умові, що в знаковому розряді отримали “1”, інвертуємо код числа і до останнього інформаційного розряду додаємо одиницю, в наслідок чого отримуємо результат в прямому коді (знаковий розряд у цьому випадку не йнвертується), якщо ж у знаковому розряді - “0”, то результат уже отриманий у прямому коді, тому ніяких подальших перетворень проводити не потрібно. Якщо було переповнення розрядної сітки, то для отримання результату необхідно вважати додатковим старшим інформаційним розрядом розряд переповнення розрядної сітки.
1.2.4 Додавання чисел в оберненому коді
В обернених, як і в доповняльних, кодах ми можемо оперувати з від’ємними числами (тобто можемо виконати операцію віднімання).
У випадку додавання чисел в оберненому коді згідно з алгоритмом від’ємні числа переводимо в обернений код шляхом інвертування кожного інформаційного розряду прямого коду. Додавши числа в обернених кодах перевіряємо умову, чи був перенос зі знакового розряду. Якщо перенос був, то старшу одиницю знакового розряду додаємо до молодшого інформаційного розряду результату. Перевіряємо умову “чи було переповнення розрядної сітки”. При переповненні враховувати додатковий старший інформаційний розряд, а результат необхідно перевести у прямий код. Якщо переповнення розрядної сітки не було, то аналізуємо знаковий розряд результату: якщо у знаковому розряді – одиниця, то переводимо результат у прямий код, інвертуючи лише інформаційні розряди; якщо у знаковому розряді – нуль, то результат уже отримали у прямому коді і ніяких подальших перетворень не потрібно.
1.2.5 Додавання двійкових чисел із знаком
Очевидно, що при додаванні чисел із знаком можуть виникати переноси одиниці із старшого розряду модуля суми до знакового розряду (позначимо його Р1) та із знакового розряду – ліворуч за межі розрядної сітки, у розряд переповнення (Р2). Через використання розглянутих раніше кодів, у яких знак числа позначається тими ж цифрами, що і розряди модуля, переповнення розрядної сітки може виникати навіть у випадку додавання чисел із різними знаками, коли модуль результату не перевищує модуля будь-якого операнда. При додаванні ж двох від’ємних чисел перенесення одиниці до розряду переповнення відбувається завжди.
При виникненні переповнення розрядної сітки для одержання правильного результату додавання необхідно застосовувати таке правило:
якщо Р1 Р2 = 0, одиниця в розряді переповнення ігнорується (відкидається);
якщо Р1 Р2 = 1, необхідно зсунути число на один розряд праворуч (або зсунути позицію точки на один розряд ліворуч).
Додавання дробових і цілих двійкових чисел, поданих у формі з фіксованою комою, відбувається однаково, тобто порядок додавання не залежить від розташування коми. Тому операцію додавання розглянемо на прикладі додавання цілих чисел.
Приклади:
1) Додавання двох додатніх чисел (без переповнення розрядної сітки).
0.100111 |
39 |
+ 0.001101 |
+13 |
0.110100 |
52 |
Р1 Р2 = 0 – результат коректний і остаточний.
2) Додавання двох додатніх чисел (з переповненням розрядної сітки).
0.01101 |
13 |
+ 0.10011 |
+19 |
1.00000 |
32 |
Р1 Р2 = 1. Результат некоректний, тому що відбулося переповнення розрядної сітки. Зсуваючи число на один розряд праворуч, остаточно маємо 0.100000(ПК) = 32(10).
3) Додавання двох чисел із різними знаками (без переповнення розрядної сітки)
1.001100 |
- 52 |
+ 0.001101 |
+ 13 |
1.011001 |
- 39 |
Р1 Р2 = 0. Результат коректний, але тому що він є від’ємним, для перевірки правильності розв’язання необхідно перетворити його у прямий код. Остаточно маємо 1.100111(ПК) = 39(10).
4) Додавання двох чисел, рівних за модулем і різних за знаком.
1.011001 |
- 39 |
+ 0.100111 |
+ 39 |
10.000000 |
0 |
Р1 Р2 = 0. Результат коректний, якщо не брати до уваги одиницю у розряді переповнення.
Додавання двох від’ємних чисел виконується аналогічно прикладам 1, 2 (у залежності від значення виразу Р1 Р2.) Тому що результат у цьому випадку завжди від’ємний, для перевірки правильності розв’язання необхідно перетворити його у прямий код, аналогічно прикладу 3.
Отже, правильність виконання операцій додавання обов'язково повинна перевірятися шляхом аналізу значення виразу Р1Р2, щоб уникнути одержання некоректного результату, що виникає при переповненні розрядної сітки, при цьому: якщо Р1 Р2 = 0, одиниця в розряді переповнення ігнорується (відкидається); якщо Р1 Р2 = 1, необхідно зсунути число на один розряд праворуч.