
Лабораторна робота № 3
Тема: Робота з командами арифметичних операцій
Мета:
- ознайомлення з системами числення та переведення чисел з однієї системи в іншу;
- застосування арифметичних операцій над двійковими числами для написання програм ;
-застосування арифметичних операцій на десятковими (ВСD) числами для написання програм ;
Теоретичні відомості.
1. Системи числення
Системою числення називається сукупність правил запису чисел. Системи числення підрозділяються на позиційні і непозиційні. Як позиційні, так і непозиційні системи числення використовують визначений набір символів — цифр, послідовне сполучення яких утворить число. Непозиційні системи числення характеризуються тим, що в них символи, що позначають те чи інше число, не змінюють свого значення в залежності від місця розташування в записі цього числа.
Класичним прикладом такої системи числення є римська. У ній для запису чисел використовуються букви латинського алфавіту. При цьому буква I означає одиницю, V — п'ять, Х — десять, L — п'ятдесят, С — сто, D — п'ятсот, М — тисячу. Для одержання кількісного еквівалента числа в римській системі числення необхідно просто додати кількісні еквіваленти вхідних у нього цифр. Виключення з цього правила складає випадок, коли молодша цифра йде перед старшою, — у цьому випадку потрібно не складати, а віднімати число входжень цієї молодшої цифри. Приміром, кількісний еквівалент числа 577 у римській системі числення — це DLXXVII = 500 + 50 + 10 + 10 + 5 + 1 + 1 = 577. Інший приклад: CDXXIX = 500 -100+10+10 - 1 + 10 = 429.
У позиційній системі числення кількість символів у наборі дорівнює основі системи числення. Місце кожної цифри в числі називається позицією. Номер позиції символу (за винятком одиниці) у числі називається розрядом. Розряд 0 називається молодшим розрядом. Кожній цифрі відповідає визначений кількісний еквівалент.
У загальному випадку кількісний еквівалент деякого додатнього числа А в позиційній системі числення можна представити виразом:
,
де: р — основа системи числення (деяке ціле додатнє число);
а — цифра даної системи числення; п — номер старшого розряду числа. Для одержання кількісного еквівалента числа в деякій позиційній системі числення необхідно скласти добуток кількісних значень цифр на степені основи, показники яких дорівнюють номерам розрядів.
Двійкова система числення
Набір цифр для двійкової системи числення:{0, 1}, основа степені р = 2.
Кількісний еквівалент деякого цілого n-значного двійкового числа обчислюється відповідно до формули :
Наявність цієї системи числення обумовлено тим, що комп'ютер побудований на логічних схемах, що мають у своєму елементарному виді тільки два стани - включений і виключений
Наприклад, розглянемо двійкове число 10100111.
Обчислимо кількісний еквівалент цього двійкового числа це буде величина, рівна наступній сумі:
1 27 + 0 26 + 1 25 +0 24 + 0 23 + 1 22 + 1 21 + 1 20=167
Додавання і віднімання двійкових чисел виконується так само, як і для інших позиційних систем числення, наприклад десяткової. Точно так само виконуються позика і перенос одиниці з (в) старший розряд.
Наприклад:
11 11111 перенесення
110011011 +
110010101
1100110000
Шістнадцятерична система числення
Дана система числення має наступний набір цифр:
{0, 1, 2, .... 9, А, В, С, D, Е, F}, основа системи р = 16.
Кількісний еквівалент деякого цілого n-значного шітнадцятеричного числа обчислюється відповідно до формули:
Наприклад, кількісний еквівалент 16-кового числа f45ed23c дорівнює:
15 167+4 166+5 165+ 14*164+13 163+2 162+3 161+12 160
Таблиця
Десяткове число |
Двійкова тетрада |
Шістнадцятеричне число |
0 |
0000 |
0 |
1 |
0001 |
1 |
2 |
0010 |
2 |
3 |
0011 |
3 |
4 |
0100 |
4 |
5 |
0101 |
5 |
6 |
0110 |
6 |
7 |
0111 |
7 |
8 |
1000 |
8 |
9 |
1001 |
9 |
10 |
1010 |
А,а |
11 |
1011 |
B,b |
12 |
1100 |
С, с |
13 |
1101 |
D,d |
14 |
1110 |
Е,е |
15 |
1111 |
F,f |
16 |
10000 |
10 |
Таблиця містить представлення десяткових чисел з діапазону 0-16 у двійковій і шістнадцятеричній системах числення. Таблицю зручно використовувати для взаємного перетворення чисел. Шістнадцятерична система числення при проведені обчислень трохи складніша, ніж двійкова, зокрема, у тому, що стосується правил переносів у старші розряди. Головне тут — пам'ятати наступну рівність:
(1+F=10)16
Ці переходи дуже важливі при виконанні додавання і вирахування шістнадцятеричних чисел.
Десяткова система числення
Дана система числення має наступний набір цифр:
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, основа ступеня р = 10.
Кількісний еквівалент деякого цілого n-значного десяткового числа обчислюється відповідно до формули:
Переведення чисел з однієї системи числення в іншу
Переведення у десяткову систему числення
Цей тип переводу найбільш простий. Звичайно його роблять за допомогою алгоритму заміщення, суть якого полягає в наступному: спочатку в десяткову систему числення переводиться основа степені р, а потім — цифри вихідного числа. Результати підставляються у формулу:
Отримана сума і буде шуканим результатом.
Переведення у двійкову систему числення
Переведення з десяткової системи числення
1. Розділити десяткове число А на 2. Запам'ятати частку q і залишок а.
2.
Якщо в результаті кроку 1 частка q
0,
то прийняти її за нове ділене і відзначити
залишок а,
що буде черговою значущою цифрою числа,
повернутися до кроку 1, на якому в я
кості
діленого (десяткового числа) бере участь
отримане на кроці 2 частка.
3. Якщо в результаті кроку 1 частка q= 0, алгоритм припиняється. Виписати залишки в порядку, зворотному їхньому одержанню. Вийде двійковий еквівалент вихідного числа.
Наприклад, потрібно перевести число 247 у двійкову систему числення
Порядок обходу залишків для одержання результату показано стрілками, і результат перетворення дорівнює 11110111.
Переведення з шістнадцяткової системи числення
Суть його полягає в послідовній заміні шістнадцятеричних цифр відповідними двійковими тетрадами згідно вище наведеної таблиці. Наприклад e4d5-> 1110 0100 1101 0101.
Переведення у шістнадцятеричну систему числення
Переведення з десяткової системи числення
Загальна ідея такого переведення аналогічна переведенню в двійкову систему числення з десяткової.
1. Розділити десяткове число А на 16. Запам'ятати частка q і залишок а.
2
.
Якщо в результаті кроку 1 частка q
0, то прийняти його за нове ділене,
записати залишок і повернутися до кроку
1.
3. Якщо частка q = 0, припинити роботу алгоритму. Виписати залишки в порядку, зворотному їхньому одержанню. Вийде шістнадцятеричний еквівалент вихідного десяткового числа.
Наприклад, потрібно перевести 32 767 у шістняцятеричну систему числення
Порядок обходу залишків для одержання результату показаний на стрілками. Результат перетворення дорівнює 7fff.
Переведення із двійкової системи числення
Алгоритм аналогічний алгоритму переведення з двійкової системи числення в шістнадцаятеричну. Двійкове число розбивається на тетради, починаючи з молодшого розряду. Далі кожна тетрада приводиться до відповідного шістнадцятеричного числа.
Наприклад, перевести число 11100101101011110101100011011000111101010101101 у шістнадцятеричну систему числення.
Розіб'ємо його на тетради:
0111 0010 1101 0111 1010 1100 0110 1100 0111 1010 1010 1101
По тетрадам приводимо послідовності нулів і одиниць до шістнадцятеричного представлення: 72D7AC6C7AAD.
Переведення дробових чисел
Особливо це важливо при програмуванні алгоритмів, що використовують операції з плаваючою крапкою . Для цього використовується формула:
Розглянемо операції перекладу чисел на прикладах.
Приклад
Перевести в десяткове представлення дріб у двійковій системі числення 110100,01001011.
Для переведення використовується формула:
110100,01001011=1*25 +1*24 +0*23 +1*22 +0*21 +0*20 +0*2-1+1*2-2+0*2-3 +0*2-4 +1*2-5 +0*2-6 +1*2-7 +1*2-8.
Обчислити цілу частину десяткового дробу 1*25 +1*24 +0*23 +1*22 +0*21+0*20. Для обчислення дробової частини 0*2-1+1*2-2+0*2-3 +0*2-4 +1*2-5 +0*2-6 +1*2-7 +1*2-8 виразу використовують таблицю.
Таблиця