
- •1.1 Загальні поняття про системи числення
- •1.1.1 Двійкова система числення
- •1.1.2 Десяткова, вісімкова і шістнадцяткова системи числення
- •1.1.3 Переведення чисел з однієї позиційної системи числення в іншу
- •1.2 Алгоритми виконання арифметичних операцій
- •1.2.1 Додавання чисел у прямому коді
- •1.2.2 Додавання чисел з фіксованою комою
- •1.2.3 Додавання чисел у доповняльному коді
- •1.2.4 Додавання чисел в оберненому коді
- •1.2.5 Додавання двійкових чисел із знаком
- •1.3 Множення і ділення двійкових чисел із фіксованою комою
- •1.3.1 Алгоритм ділення без відновлення остачі
- •1.3.2 Операція додавання чисел, поданих у формі з «плаваючою» комою
- •1.3.3 Операція множення чисел, поданих у формі з «плаваючою» комою
- •1.4 Форми подання двійкових чисел.
- •2 Аналітично-розрахункова частина
- •2.1 Завдання 1
- •2.2 Завдання 2
- •Відповідь: 00,1001001100
- •2.3 Завдання 3
- •2.4 Завдання 4
- •2.5 Завдання 5
- •Висновки
- •Перелік посилань
- •Додаток а
2.4 Завдання 4
Знайти частку та залишок від ділення числа M=1260 на R=75, використовуючи алгоритм з відновленням залишку.
Для подальшого рішення завдання знаходимо за стандартним алгоритмом число M=1260 в двійковому варіанті
Рисунок 2.4.1 – переведення числа 1260 у двійкову систему числення
126010 =100111011002
Mпр = 00, 10011101100
R =75
Рисунок 2.4.2 – переведення числа 75 у двійкову систему числення
7510 =10010112
Rпр = 00, 1001011
Оскільки, ми не можемо поділити число 1260 на число 75, то ми зсуваємо прямий код числа 75 вліво, доти, доки воно не стане більшим за число 1260. В результаті ми зсунули 75 на 5 одиниць вліво і отримали 00, 100101100000 в двійковій системі числення, яке рівне числу 2400 в десятковій системі числення.
00, 10011101100
00, 00001001011
00, 10011101100 - 1260
00, 10010110000 - 1200
00, 010011101100
00, 100101100000 - 2048+256+64+32=2400
00, 010011101100
11, 011010100000
11, 101110001100 0,
11, 011100011000
00, 100101100000
100, 000001111000 0, 1
00, 000011110000
11, 011010100000
11, 011110010000 0, 10
10, 111100100000
00, 100101100000
11, 100010000000 0, 100
11, 000100000000
00, 100101100000
11, 101001100000 0, 1000
11, 010011000000
00, 100101100000
11, 111000100000 0, 10000
11, 110001000000
00, 100101100000
100, 010110100000 0, 100001
00, 101101000000
11, 011010100000
100, 000111100000 0, 1000011
00, 001111000000
11, 011010100000
11, 101001100000 0, 10000110
11, 010011000000
00, 100101100000
11, 111000100000 0, 100001100
11, 110001000000
00, 100101100000
100, 010110100000 0, 1000011001
00, 101101000000
11, 011010100000
100, 000111100000 0, 10000110011
В результаті ми отримали таке число - 00, 10000110011. Оскільки ми повинні отримати частку та залишок від ділення числа 1260 на 75, то перенесемо кому вправо на 5 одиниць. Остаточним результатом ділення є число:
10000, 110011
2.5 Завдання 5
Розробити програму для додавання та віднімання чисел з плаваючою комою в двійковій арифметиці для доповняльного коду. Провести тестування роботи програми.
Алгоритм виконання дій однаковий і на С++, і на мові Pascal:
Програма приймає 4 числа: мантису і порядок числа А, мантису і порядок числа B. Результатом програми є мантиса і порядок числа С, що є сумою чисел А і B.
Програма працює з цілими числами, як з додатніми, так і від'ємними. Тобто фактично вона виконує додавання та віднімання чисел з плаваючою комою в двійковій системі числення.
Програма складається з декількох процедур. Розглянемо кожну з них. Процедура dbl переводить мантиси і порядки заданих чисел і записує двійкові коди до відповідних масивів. Процедура dpvn переводить отримані двійкові коди у доповняльні коди. Зауважимо, що доповняльний код додатного числа рівний прямому коду цього числа. Процедура sdvg проводить сдвиг мантиси більшого числа на відповідну кількість розрядів вліво. Тим самим зрівнюються порядки доданків для подальших дій. Процедура sum безпосередньо виконує процес додавання мантис чисел за правилами додавання. Процедури dpvnp i dpvnc переводять отримані коди мантиси і порядку у прямий код. Головна фунція main викликає по черзі описані вище процедури і виводить на екран проміжні результати і відповідь.
а) Розробка програми мовою Pascal:
Дана програма (лістинг наведено у додатку А) розроблена для додавання та віднімання чисел з плаваючою комою в двійковій арифметиці для доповняльного коду.
Проведемо тестування програми:
Рисунок 2.5.1 – тестування програми на мові Pascal
Рисунок 2.5.2 – тестування програми на мові Pascal
б) Розробка програми на мові С++:
Дана програма (лістинг наведено у додатку B) виконує перевід з вісімкової у десяткову систему числення цілі числа.
Проведемо тестування роботи програми:
Рисунок 2.5.3 – тестування програми на мові С
Рисунок 2.5.4 – тестування програми на мові С