Загальні відомості про системи числення
Якщо вам на уроці пропонують
записати будь-яке число, ви не замислюючись, зображаєте його за допомогою
арабських цифр: 0, 1, 2,.. 9. Ці цифри утворюють десяткову систему числення, і
саме в ній викладається шкільна арифметика.
Система числення - це позначення чисел і прийоми роботи з ними.
Мінімальний набір знаків, якими позначається число, називається алфавітом. Кількість знаків у алфавіті називається основою системи числення.
Отже, у десятковій системі
алфавіт утворений цифрами 0, 1, 2,.. 9, а основа дорівнює 10. З нею пов'язана
назва системи.
Зауважимо, що системи
числення, незважаючи на свою простоту та природність, є результатом тривалої
еволюції. Десяткова система виникла в результаті обчислень за допомогою
пальців. З'явилася вона в Індії у V столітті та була викладена арабською мовою
у рукописах, датованих IX століттям. Тому цифри цієї системи
називаються арабськими.
Давні шумери, які жили у
Південному Дворіччі в III тисячолітті до нашої ери, застосовували
систему, алфавіт якої складався з шістдесяти цифр. За допомогою цієї системи
можна було пронумерувати секунди у хвилинах, а хвилини - у годинах. Крім поділу
часу на години, шумери запровадили поділ кутів на градуси, мінути і секунди.
Один кутовий градус містить 60 мінут, тобто 1° (градус) = 60’ (мінут) і 1’ = 60’’
(секунд). Така система називається шістдесятковою.
Двійкове числення не таке
давнє, як десяткове або шістдесяткове: воно було запропоноване у XVII ст. Готфрідом Лейбніцем. Алфавіт двійкової
системи складається лише з двох цифр - 0 і 1. В інформатиці, крім двійкової
системи, часто застосовується шістнадцяткова (основа дорівнює 16).
Запис чисел у двійковій системі
Розглянемо структуру звичних для вас
десяткових чисел. У десятковій системі числення число можна подати як суму
внесків розрядів: одиниць (10°), десятків (101), сотень (102)
тощо. Наприклад, число 888 записується як сума:
888
= 8*100 + 8*10 + 8*1 = 8*102 + 8*101 + 8*100
Аналогічно зображається число
і у двійковій системі, із тією відмінністю, що в цій системі числа виражаються
тільки за допомогою двох цифр: 0 і 1, а основою системи є 2. Наприклад, число 5
записується так:
5 =
1*22 + 0*21 + 1*20
Зобразимо у двійковій системі перші числа
натурального ряду:
0 = (0)2
1 = (1)2
2 = (10)2
3 = (11)2
4 = (100)2
Тут двійкові числа позначені
у круглих дужках з індексом 2 для того, щоб відрізнити їх від десяткових чисел.
Перші дві цифри (0 і 1) у двійковій системі мають такий самий вигляд, як і в
десятковій, тому що записуються за допомогою одного розряду. При переході до
третьої цифри ("двійки") у двійковій системі потрібен ще один розряд,
бо молодший розряд уже заповнений. До нового розряду записуємо 1, а у молодшому
розряді лишається 0: (10)2 = 2. Далі заповнюємо молодший розряд і
отримуємо (11)2 = 3. Для запису наступної цифри потрібно розкривати
новий розряд, тому що наявні вже заповнені. До нового розряду записуємо 1, а
молодші розряди "зануляємо". В результаті отримуємо: (100)2
= 4. Представлення наступних цифр (5, 6, 7) виконуємо послідовним заповненням
двох перших розрядів за принципом зворотного "старшинства": спочатку
заповнюється молодший розряд, а потім - старший. Коли заповнено всі три
розряди, відкриваємо новий, і т.д. За допомогою чотирьох двійкових розрядів ми
зможемо записати не лише алфавіт арабських цифр, а й дійти до числа 15, яке має
вигляд (1111)2.
Будь-яке двійкове число, як і
десяткове, можна записати у вигляді суми степенів основи, наприклад,
(110110)2
= 1*25 + 1*24 + 0*23 + 1*22 + 1*21
+ 0*1
Цьому числу відповідає
десяткове число 54. Отже, запис числа у двійковій системі набагато довший, ніж
у десятковій. Наприклад, для числа 54 досить лише двох десяткових розрядів,
тоді як у двійковій - шість.
Незважаючи на високу
розрядність двійкових чисел, саме двійкова система стала основою побудови
обчислювальних машин, тому що електронні елементи (тригери), які застосовуються
в обчислювальній апаратурі, відтворюють і розпізнають лише два стани - 0 і 1.
Для сучасних комп'ютерів, які можуть за один такт роботи опрацьовувати до 64
розрядів, висока розрядність не проблема.
Виникає запитання: скільки
чисел можна записати за допомогою n бітів, тобто n-розрядних двійкових чисел? Відповідь
отримати неважко, якщо порівняти двійкову систему з десятковою. У десятковій
системі за допомогою двох розрядів можна записати 100 (=10*10) чисел від 0 до 99. Трьома розрядами
можна подати вже 1000 (=10*10*10) чисел. Отже, кількість чисел, які можна
подати n розрядами, дорівнює аn, тобто n-му степеню основи а. Для двійкової системи кількість чисел, що записуються за
допомогою n бітів, дорівнюватиме 2n.
Двійкова арифметика
Розглянемо правила виконання арифметичних дій з двійковими числами. Для їхнього додавання та множення застосовують такі таблиці:
Якщо додаєте 1 + 1, відбувається перенесення одиниці до старшого розряду, як для десяткових чисел. Як приклад додамо два двійкових числа, однак, на відміну від ЕОМ, скористаємося записом у стовпчик, причому праворуч наведемо звичайний запис у десятковому коді:
Множення двійкових чисел не складніше (а, може, й простіше), ніж у десятковій системі. Наприклад:
Нарешті, двійкові числа можна ділити одне на інше. Цю операцію краще виконати звичним способом - "куточком". Почнемо з найпростішого: розділимо 101 на 100, тобто 5 на 4:
Уся операція виконується так
само, як і для десяткових чисел. Знаходимо найбільший дільник у старшому
розряді (його записуємо під знаком куточка) і залишок (він записується під
рискою).
Розглянемо складніший приклад. Знайдемо результат
ділення 1101000 на 101:
У наведеному прикладі
переведіть двійкові числа у десяткові та визначте, для яких чисел виконувалося
ділення та який отримано результат.
Вісімкові й шістнадцяткові числа
Двійкова система числення
призводить до довгого запису чисел, який важко сприймається під час читання з
паперу або екрана монітора. Тому в інформатиці часто використовують ще дві
системи для компактнішого запису чисел. Це вісімкова і шістнадцяткова системи
числення, які зручніші від двійкової для запису чисел на папері або введення з
клавіатури. Ці системи є допоміжними, тому що комп'ютер "знає" лише
двійкову систему.
Вісімкові числа записують за допомогою алфавіту 0, 1,...7,
тоді як алфавіт шістнадцяткової системи числення складається з арабських цифр і
перших літер латинського алфавіту:
0,
1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, E, F
Основи цих двох систем є
степенями числа 2 (8 = 23 і 16 = 24), тому двійкові числа
зручно записувати у цих системах. Так, для переведення цілого двійкового числа
до вісімкової системи розбиваємо його на групи справа наліво по три цифри у
кожній, наприклад:
1101011 = 1 101 011
Кожну трійку цифр (вони
називаються двійковими тріадами)
подамо як вісімкове число:
1101011 = 1 101 011 = (153)8
Якщо потрібно перетворити
вісімкове число на двійкове, то навпаки, замість кожної вісімкової цифри
запишемо групу з трьох двійкових чисел - тріаду.
До шістнадцяткової системи
двійкові числа переводяться аналогічно. Відмінність лише в тому, що двійковий
код розбивається на групи не з трьох, а з чотирьох цифр (двійкові тетради), наприклад:
11010101110
= 110 1010 1110 = (6АЕ)16
Шістнадцяткові числа
позначають літерою Н у кінці числа, наприклад
(6АЕ)16 = 6АЕН.
Числа, подані у вісімковій
системі, майже такі самі компактні, як і десяткові, а у шістнадцятковій -
компактніші від десяткових. За допомогою вісімкового коду, що складається з n розрядів, можна записати 8n чисел, а за допомогою шістнадцяткового коду – 16n чисел.
Відповідність різних систем числення
На завершення наведемо
таблиці відповідності чисел від 0 до 15 у десятковій, двійковій, вісімковій і щістнадцятковій системах.
Числа від 0 до 15 в різних системах числення
Десяткова
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
Шістнадцяткова
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
Вісімкова
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
Двійкова
|
0
|
1
|
10
|
11
|
100
|
101
|
110
|
111
|
1000
|
1001
|
1010
|
1011
|
1100
|
1101
|
1110
|
1111
|
Зверніть увагу на те, що чим
більша основа системи числення, тим коротший код числа. Наприклад, число 14 у
двійковій системі записується чотирма розрядами, а у шістнадцятковій системі
для цього потрібен лише один.
Вправи
1. Запишіть
як суму за розрядами число (35677)10.
2. Подайте числа (111)2, (111)8
як суму внесків від кожного розряду й скажіть, чому дорівнюють ці числа у
десятковій системі.
3. Перетворіть
у двійкову систему десяткові числа 11, 27, 96.
4. Знайдіть
суму чисел 101011 і 1101.
5. Виконайте
множення у двійковому коді чисел 101010 і 110.
6. Знайдіть
частку від ділення двох двійкових чисел 100001 і 11.
7. Перетворіть
двійкове число 1101010110 у вісімкову і десяткову системи.
8. Перетворіть
у шістнадцяткову систему десяткові числа 332 і 415.
9. Яким
двійковим і десятковим числам відповідають записи 2В, В8?
10. Скільки цілих чисел можна записати за
допомогою коду завдовжки 1 байт (2 байти)?