ПОДАННЯ ІНФОРМАЦІЇ В МІКРОПРОЦЕСОРНИХ ЗАСОБАХ. Система числення
В "Енциклопедії кібернетики" термін "обчислювальна машина" визначається так: "Обчислювальна машина - фізична система (пристрій або комплекс пристроїв), призначена для механізації і автоматизації процесу алгоритмічної обробки інформації та обчислень".
Інформація визначає багато процесів, що відбуваються в обчислювальній машині. Таким чином, обчислювальна машина, в загальному випадку, отримує інформацію, запам'ятовує її, обробляє за заданою програмою і направляє споживачу (користувачеві) або передає в інші системи обробки.
Термін "інформація" в широкому сенсі - це відображення реального світу, а у вузькому сенсі - це будь-які відомості, що є об'єктом зберігання, передачі і перетворення. З практичної ж точки зору інформація завжди подається у вигляді уявлення про події, явища природи, про стан технологічних виробничих процесів. Повідомлення від джерела до приймача за допомогою каналу передачі надходить в матеріально-енергетичній формі (електричний, світловий, звуковий сигнал і т. п.). У цьому сенсі інформаційне повідомлення можна представити функцією X (t), що характеризує зміну в часі матеріально-енергетичних параметрів фізичного середовища, в якій здійснюються інформаційні процеси.
Малюнок 1.1 - Перетворення безперервної функції
Цифрові ЕОМ використовують дискретні повідомлення. При цьому перехід від безперервного подання сигналу до дискретного дає значні переваги при передачі, зберіганні та обробці інформації. Для цих цілей широко використовуються аналого-цифрові перетворювачі, які здійснюють квантування сигналу за рівнем і за часом. У першому випадку значення рівня сигналу замінюються набором дискретних значень з точністю ΔX (рис. 1.1), у другому - безперервний сигнал заміняється послідовністю імпульсів тривалістю τ 0, наступних через інтервали часу Δt,
де Fm - максимальна складова частоти в спектрі безперервного сигналу.
Сукупність усіх вибірок утворює дискретний або цифровий сигнал. У цифровій техніці такий процес називається кодуванням, а сукупність отриманих чисел - кодом сигналу. Для запису чисел цифровими знаками використовуються позиційні системи числення.
Поняття про системи числення. У загальному випадку система числення представляє собою сукупність прийомів і правил для запису чисел цифровими знаками (символами). При цьому застосовується у практиці система числення повинна забезпечувати: запис будь-якого числа в потрібному діапазоні величин; однозначне уявлення сукупності символів відповідно до числа; простоту оперування цифровими знаками.
Всі системи подання чисел ділять на непозиційної і позиційні. У першому випадку кількісний еквівалент цифри не залежить від місця її розташування в записі числа. Так, в римській системі числення, якщо цифра, має менший кількісний еквівалент, розташовується праворуч від цифри з великим кількісним еквівалентом, то їх кількісні еквіваленти складаються, якщо зліва то віднімаються.
Наприклад, запис XV відповідає числу 15 (X - десять, V - п'ять), а запис IX - числу дев'ять.
Непозиційної системи числення характеризуються дуже складними і громіздкими алгоритмами подання чисел та виконання арифметичних дій і тому в цифровій обчислювальній техніці застосування не знайшли.
У другому випадку одна і та ж цифра приймає різні числові значення в залежності від місця розташування (розряду) цієї цифри в записі числа. Наприклад, у десятковій системі числення в записі 737 цифра 7 зустрічається двічі, однак її кількісний еквівалент в обох розрядах різний: права цифра 7 позначає число одиниць - сім, а ліва - сімсот.
Будь-яка позиційна система числення характеризується підставою. Підстава (базис) - число знаків або символів, використовуваних для представлення цифр в даній системі. Можливо незліченна безліч позиційних систем, так як за основу можна прийняти будь-яке число, утворивши нову систему. У обчислювальній техніці, наприклад, широко використовуються шістнадцяткова система числення, запис чисел якої проводиться за допомогою цифр і символів (букв): 0, 1 ,..., 9, A, B, C, D, E, F.
Для позиційної системи числення справедливо рівність
(1.1)
де N - довільне число, записане в системі числення з основою q;
a - цифри системи числення;
n, m - число цілих і дробових розрядів.
Так, наприклад, скороченої запису числа 737.25 відповідає його значення, обчислене згідно рівності (1. 1):
737.25 = 7 · 10 2 + 3 · 10 1 + 7 · 10 0 + 2 · 10 -1 + 5 · 10 -1.
У двійковій системі числення для подання чисел використовуються дві цифри: 0 і 1. Діючи згідно з (1.1), значення двійкового числа, наприклад, 11110010. 0110 можна представити в наступному вигляді:
11110010.0110 = 1.2 7 + 1.2 6 + 1.2 5 + 1.2 4 + 0.2 3 + 0.2 2 + 1.2 1 + 0.2 0 + 0.2 -1 + 1 · 2 -2 + 1.2 -3 + 0.2 -4.
Очевидно, десятковий еквівалент цього двійкового числа (за правилами десяткової арифметики) буде дорівнює 241. 375.
У табл. 1.1 наведені еквіваленти десяткових цифр у деяких системах числення.
Таблиця 1.1 - Еквіваленти десяткових цифр
Десяткова цифра | Еквіваленти в системах числення | Десяткова цифра | Еквіваленти в системах числення | ||||
q = 2 | q = 8 | q = 16 | q = 2 | q = 8 | Q = 16 | ||
0 | 0 | 0 | 0 | 8 | 1000 | 10 | 8 |
1 | 1 | 1 | 1 | 9 | 1001 | 11 | 9 |
2 | 10 | 2 | 2 | 10 | 1010 | 12 | A |
3 | 11 | 3 | 3 | 11 | 1011 | 13 | B |
4 | 100 | 4 | 4 | 12 | 1100 | 14 | C |
5 | 101 | 5 | 5 | 13 | 1101 | 15 | D |
6 | 110 | 6 | 6 | 14 | 1110 | 16 | E |
7 | 111 | 7 | 7 | 15 | 1111 | 17 | F |
Для запису одного і того ж значення в різних системах числення потрібна різна кількість позицій або розрядів. Чим менше підставу системи, тим більше довжина числа (довжина розрядної сітки). Якщо довжина розрядної сітки задана, то це обмежує максимальне за абсолютним значенням число, яке можна записати.
Нехай довжина розрядної сітки дорівнює будь-якому позитивному числу, наприклад, числу К. Тоді
N (q) max = q k - 1. (1.2)
Якщо ж задано максимальне абсолютне значення числа, то довжина розрядної сітки
K = log q (N (q) max = 1). (1. 3)
Зазвичай довжина оброблюваних чисел у ЦВМ обмежена значеннями: 1 байт (8 розрядів), 2 байти (16 розрядів), а також 4 і 8 байт.
Перетворення чисел з різними підставами. Для перекладу цілих чисел або цілих частин неправильних дробів із системи числення з основою q 1 в нову систему числення з основою q 2 використовується метод, який базується на розподілі перекладного числа на основу нової системи числення. Відповідно до (1.1) ціле число N (q1) у системі з основою q 2 записується у вигляді:
N (q 2) = b n-1 q 2 n-1 + b n-2 q 2 n-2 + ... + b 1 q 1 лютого + b 0 q 2 0. (1. 4)
Представляючи (1.4) за схемою Горнера, отримаємо:
N (q 2) = (... (((b n-1 q 2 + b n-2) q 2 + b n-3) q 2 ... + b 1) q 2 + B 0). (1. 5)
Запис числа N (q 2) у вигляді (1.5) розкриває сутність використовуваного методу. Дійсно, якщо розділити праву частину (1.5) на величину підстави q 2, то отримаємо цілу частину (... (b n-1 q 2 + b n-2) q 2 + ... b 1) і залишок b 0. Розділивши цілу частину на q 2, знайдемо другого залишок b 1.
Повторюючи процес розподілу n разів, знаходимо останнє приватне b n-1, яка відповідно до (1.5) є старшою цифрою n розрядного числа, представленого в системі з основою q 1. Переклад чисел арифметичними діями повинен проводитися за правилом системи числення з основою q 1 .
Приклад 1.1 Перекласти десяткове число N = 134 в двійкову систему числення (q 2 = 2)
Хід вирішення наведено в табл. 1. 2.
Таблиця 1. 2 - Переклад десяткового числа
Кроки | Операція ділення | Приватне | Залишок (цифра) | Розряд | Примітка |
1 | 134:2 | 67 | 0 | b 0 | Молодший розряд |
2 | 67:2 | 33 | 1 | b 1 | |
3 | 33:2 | 16 | 1 | b 2 | |
4 | 16:2 | 8 | 0 | b 3 | |
5 | 8:2 | 4 | 0 | b 4 | |
6 | 4:2 | 2 | 0 | b 5 | |
7 | 2:2 | 1 | 0 | b 6 | |
8 | 1:2 | 0 | 1 | b 7 | Старший розряд |
Відповідь: N = b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 = 10000110 1.
При перекладі правильних дробів із системи числення з основою q 1 в систему числення з основою q 2 використовується метод, який базується на множенні переводиться правильний дріб на основу q 2 нової системи числення. Правильну дріб N (q 1) у системі з основою q 2 можна представити наступним виразом:
N (q 2) = b -1 q 2 -1 + b -2 q 2 -2 + ... + b-m q 2-m. (1.6)
За схемою Горнера (1.6) можна представити у вигляді:
N (q 2) = q 2 -1 (b -1 + q 2 -1 (b -2 + ... + q 2 -1 (b - (m-1) + q 2 -1 b-m) ...)) . (1.7)
Якщо праву частину виразу (1.7) помножити на q 2, то можна знайти неправильну дріб, в цілій частині якої буде число b -1. Частину, що залишилася дробову частину варто далі помножити знову на q 1. В отриманій дробу ціла частина представить собою b -2 і т.д. Таким чином, m - кратне множення дозволяє знайти всі m цифр дробової частини числа в новій системі числення. Всі дії виконуються за правилами q 1-арифметики. У результаті описаних операцій в цілій частині виходять дробів будуть отримані еквіваленти цифр в новій системі числення.
Приклад 1.2. Привести десяткову дріб N = 0.34375 у двійкову систему числення (q = 2).
Операції перекладу наведено в табл. 1.3.
Таблиця 1.3 - Переклад дробового числа
Кроки | Операція множення | Твір | Ціла частина (цифра) | Розряд | Примітка |
1 | 2 * 0.34375 | 0.6875 | 0 | b -1 | Старший розряд |
2 | 2 * 0.6875 | 1.375 | 1 | b -2 | |
3 | 2 * 0.375 | 0.75 | 0 | b -3 | |
4 | 2 * 0.75 | 1.5 | 1 | b -4 | |
5 | 2 * 0.5 | 1.0 | 1 | b -5 | Молодший розряд |
Відповідь: N (2) = 0. b -1 b -2 b -3 b -4 b -5 = 0. 01011.
Перекладаючи правильні дроби з однієї системи числення в іншу, можна отримати дріб у вигляді нескінченного або розходиться ряду. У цьому випадку рекомендується процес перекладу закінчувати, якщо з'явиться дробова частина, що має у всіх розділах нулі, або буде досягнута задана точність перекладу (отримано необхідне число розрядів результату).
Природно, що при цьому виникає похибка переведення чисел. У ЕОМ точність перекладу зазвичай обмежується довжиною розрядної сітки, відведеної для представлення чисел.
Для зручності перетворення двійкових чисел в десяткові приведемо значення ваги деяких розрядів (позицій) двійкової системи числення в межах b 15 ... b -6 (див. табл. 1.4).
Таблиця 1.4 - Ваги розрядів двійкового числа
Лютого 1915 | 14 лютого | Лютий 1913 | Лютий 1912 | 11 лютого | Лютого 1910 | 9 лютого | 2 серпня | 2 липня | 2 червня | 5 лютого |
32768 | 16384 | 8192 | 4096 | 2048 | 1024 | 512 | 256 | 128 | 64 | 32 |
2 квітня | 2 Березня | 2 лютого |