Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KT_P_ch1.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
12 Мб
Скачать
☆

1.3. Системи числення програмного забезпечення мікропроцесорної техніки

Для аналізу процесів, які відбуваються в пристроях мікропроцесорних систем, їх синтезу та програмування необ­хідно знати правила роботи з числовою інформацією. Діяльність людини пов’язана з використанням десяткової систе­ми числення. При роботі з мікропроцесорною технікою разом з десятковою використовують двійкову та шіст­над­цятко­ву системи числення. Будь-яка з них має певний набір цифр і правила їх записування. Загальна кількість усіх цифр си­­с­те­ми називається її основою. Поряд написані цифри утворюють числа, причому кожна цифра займає певну позицію.

В десятковій системі числа записують десятьма різними цифрами – від 0 до 9. Кожна позиція оцінюється певним значенням: крайня справа нульова позиція (100) містить одиниці; наступна перша позиція (101) – десятки; друга позиція (102) містить сотні і так далі. Для запису десяткового числа у розгорнутому вигляді кожну цифру в числі множать на значення її позиції (вагу) і всі добутки додають:

     103 102 101 100

7 5 4 6 = 7×103+5×102+4×101+6×100;

Якщо десяткове число має дробову частину, то її відокремлюють комою (або крапкою) від цілої частини. При цьому значення першої справа від коми позиції дорівнює 10-1 наступних позицій – другої і третьої відповідно дорівнює 10-2 та 10-3 і т.д. Десяткові числа записують переважно у формі з фіксованою комою, наприклад: 1,35; 9,81; 18,79 і тому подібне. Другим способом їх запису є форма зображення числа з плаваючою комою, при якому різні варіанти запису того ж самого числа визначає місце коми: 365 ® 3,65´102; 36,5´101; 3650´10‑1 і тому подібне. В загальному вигляді число з плаваючою комою записують так: N=M´10P (М – мантиса; Р – порядок). Мантиса – є норма­лізова­ною, якщо її значення визначається нерівністю виду: 1/q £ M < 1, де q – основа системи числення.

Зазначимо, що використання пакету підпрограм арифметики чисел з плаваючою комою підвищує точність обчислювань при роботі з різноманітними числовими даними.

Мікропроцесорні системи працюють з спеціальними електричними сигналами, які кодуються на основі двійкової система числення. Двійкова система числення, або система з основою “2” використовує тільки дві цифри, які традиційно позначають як “0” та “1”. Ці двійкові цифри мають назву бітів (від слів “bіnarі dіgіt” – двійкова одиниця). Фізично біт “0” представляють низькою напругою “L” (LOW), величина якої прямує до “0”, а біт “1” – напругою високого рівня певного значення “Н” (HIGH), наприклад +5В. Як і у десятковому числі, кожна цифра двійкового числа займає певну позицію. Крайня справа позиція у двійковому числі має значення, що дорівнює 20, наступні відповідно 21, 22, 23 і так далі. Десяткове число з двійкового отримують за формулою:

N  a12n–1  a22n–2  …  an–121  an20,

де а – число, значення якого дорівнює “0” або “1”; n – кількість цифр у двійковому числі (довжина двійкового числа). Наприклад, розгорнуту форму двійкового числа 11101 можна записати:

11101  124  123  122  021  120.

Щоб не плутати числа, складені з тих самих цифр, але таких, що належать до різних систем числення, після кожного числа в дужках зазначають систему числення, наприклад 11101(2)  29(10).

Дробова частина двійкового числа відокремлюється від цілої за допомогою коми, причому кожна позиція справа від коми має таке значення: 2–1, 2–2, 2–3 і так далі. Отже, наприклад, розгорнута форма запису двійкового дробового числа:

0,01101(2) = 1×2–1  1×2–2  0×2–3 +1×2-4 =  0,5+0,25+0+0,0625 = 0,8125 (10)

Двійкові числа, як і десяткові записують у двох формах: з фіксованою і плаваючою комою.

Наприклад: з фіксованою комою N = 111,101(2) = 7,625(10);

з плаваючою комою N = 0,111´10101|(2) = 0,875´25|(10).

У практичній роботі часто буває потрібно перетворювати числа десяткової системи числення в числа двійкової системи. Для цього ціле десяткове число ділять на основу двійкової системи числення, тобто на 2. Остача від ділення на 2 може дорівнювати 0 або 1. Значення остачі присвоюється молодшому розряду вишукуваного двійкового числа. Результат першого ділення знову ділиться на 2. Остачі (“0” або “1”) присвоюється наступний розряд двійкового числа. Подібна процедура повторюється доти, поки результат ділення не буде дорівнювати “0”. Остача від останньої дії ділення є значенням старшого розряду двійкового числа (див. рис.1)

При перетворенні десяткового дробу, дробову частину двійкового числа множать на 2. Якщо результат буде менший від 1, то старшому розряду шуканої дробової частини двійкового числа присвоюють значення “0”, а якщо більший ніж “1”, то “1”. Результат попередньої операції знову множать на 2, причому для множення беруть тільки його дробову частину. Аналогічну операцію проводять з новим результатом. Описану процедуру повторюють доти, поки результат наступного множення точно не дорівнюватиме “1”, або поки не буде досягнуто необхідної точності.

Розглянемо перетворення десяткового дробу у двійковий на прикладі перетворення числа 0,375(2):

1. 0,375´2 = 0,75 ® 0 старший розряд дробової частини двійкового числа

2. 0,75´2 = 1,5 ® 1 наступний розряд дробової частини двійкового числа

3. 0,5´2 = 1 ® 1 молодший розряд дробової частини двійкового числа.

Таким чином, 0,375(10) = 0,011(2).

Якщо десяткове число має дробову частину, то в двійкову систему перетворюють цілу частину згідно першому правилу, а дробову частину – згідно другому і потім записують загальний результат.

Числа у двійковій системі числення займають багато позицій і, щоб спростити їх використання, застосовують шістнадцяткову систему числення (hexadecіmal). Її основою є число 16 і вона вико­ристовується як засіб скорочення запису двійкових чисел при написанні програм. Шістнадцяткова система містить 16 символів: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E і F, тобто з 0 по 9 – у вигляді цифр, а з 10 по 15 – у вигляді латинських літер, де літера А визначає десять, В – одинадцять і так далі до літери F, яка відповідає п’ятнадцяти. Кожний шістнадцятковий символ може бути визначений, як сполучення 4-х біт. Для перетворення двійкового числа в шістнадцяткове треба поділити число на групи з 4-х біт і замінити їх еквівалентними шістнадцятковими цифрами. Для переводу двійкових чисел у шістнадцяткові та десяткові і навпаки доцільно користуватись таблицею 1:

Таблиця 1

Двійкові числа

Десяткові числа

Шістнадцяткові числа

Двійкові числа

Десяткові числа

Шістнадцяткові числа

0000

0

0

1000

8

8

0001

1

1

1001

9

9

0010

2

2

1010

10

A

0011

3

3

1011

11

B

0100

4

4

1100

12

C

0101

5

5

1101

13

D

0110

6

6

1110

14

E

0111

7

7

1111

15

F

Перетворимо двійкове число 1001 1110 в шістнадцяткове. Для цього ділимо двійкове число на групи 1110(2) і 1001(2). Кожну з них замінюємо відповідним шістнадцятковим числом Е(16) і 9(16). Тоді шукане шістнадцяткове число дорівнює 1001 1110(2) = 9Е(16).

Навпаки, для перетворення шістнадцяткового числа 7F(16) у двійкове число кожну шістнадцяткову цифру замінюють відповідним двійковим числом з 4-х біт: F(16) = 1111(2) і 7(16) = 0111(2). Тоді еквівалентне двійкове число буде дорівнювати 7F(16) = 0111 1111(2).

Важливим є також перетворення шістнадцяткових чисел у десяткові і навпаки. Розглянемо процес перетворення шістнадцяткового числа 2С6Е в десяткове:

2С6Е(16) = 2´163  С´162  6´161 + Е´160 = 2´4096  12´256 + 6´16 + 14´1 = 11374(10).

Значеннями перших чотирьох шістнадцяткових цифр є відповідно 4096, 256, 16 і 1. Десяткове число містить 14 (Е16) одиниць, 6 чисел 161, 12 (С16) чисел 162 і 2 числа 163. Сума цих чисел є десятковим числом 11374(10).

Процедура перетворення десяткового числа в шістнадцяткове є аналогічною процедурі його перетворення у двійкове число.

Наприклад:

В результаті дістаємо: 739(10) = 2143(16) = 2Е3(16).

При роботі з мікропроцесорами використовують інколи вісімкову систему числення з основою 8. Існує також спеціальний двійково-десятковий код, в якому кожна десяткова цифра перетворюється у двійковий еквівалент з 4 біт. Наприклад, щоб записати у двійково-десятковому коді число 65, цифри 6 і 5 окремо переводять у натуральний двійковий код: 6 = 110(2), 5 = 101(2), і потім записують загальний результат: 65(10) = 110101(2-10).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]