logo
МПТ_L_к

4.3. Вісімкова та шістнадцяткова системи числення

Обидві системи чилення використовуються для скорочення запису двій-

кових чисел при програмуванні мікропроцесорної системи. Вісімкова система числення використовується при програмуванні мікропроцесорного контролера «Ломіконт».

Шістнадцяткова система числення використовується при програмуванні всіх сучасних МП та контролерів. Їі програмісти використовують також для переведення чисел із десяткової системи числення в шістнадцяткову, двійкову та вісімкову з мінімальною кількістю виконуємих при цьому операцій.

Прийняте правило (залежить від типу програмного забезпечення МП), що:

- якщо при програмуванні МП виконується запис числа чи коду операції в шістнадцятковій системі числення, то в кінці числа ставиться латинська літера, наприклад, 5ЕН;

- якщо в двійковій системі – то в кінці числа ставиться літера В, н.,0101100В; - якщо число десяткове – то літери в кінці числа не повинно бути, або використовується літера D;

- якщо число в вісімковій системі – то в кінці ставлять літери O чи Q.

Правила переведення двійкових чисел у вісімкові та шістнадцяткові:

Так як основою вісімкової системи числення є число 8 = 2 , то для переводу двійкових чисел в вісімкові необхідно розділити двійкове число зправа наліво на групи по 3 біти в групі (тобто, розбити двійкове на тріади). Кожну із таких груп неохідно надати однією вісімковою цифрою, використовуючи еквівалентність кодів.

Таким же чином виконується переведення двійкових чисел у шістнадцяткові. Але в цьому випадку двійкове число розбивається зправа наліво на групи по 4 розряди (тетради), які надаються однією 16-тковою цифрою, в відповідністю із значенням еквівалентного коду.

Приклади переведення:

шістнадцяткове: 3 5 0 6 3506Н

Н., двійкове : 0 011 010 1 00 00 0 110

вісімкове : 3 2 4 0 6 32406 Q

шістнадцяткове : B E A C BEACH

Н., двійкове : 1 011 111 0 10 10 1 100

вісімкове : 1 3 7 2 5 4 137254 Q

Таким чином вісімкову систему числення можна використовувати як засіб скорочення запису двійкового 3-х розрядного числа (від 000 до 111), а шістнад-цяткову – для запису двійкового 4-х розрядного числа (від 0000 до 1111).

Способи переведення десяткового числа в вісімкове або в шістнадцяткове.

За першим способом можна, наприклад, десяткове число спочатку перевести в двійкове, використавши розглянуті вище способи такого переведення. А потім, використовуючи розбивання отриманого двійкового числа на відповідні 3-х (тріади) чи 4-х (тетради) розрядні складові, визначити чи 8-ве чи 16-ве число, та записати число, як послідовність символів в відповідній системі числення, виконавши об”єднання груп.

Другий спосіб перетворення десяткового числа у вісімкове або шістнадцяткове грунтується на послідовному діленні десяткового числа на основу системи числення, в яку переводиться число ( 8 або 16).

Перша операція ділення вихідного числа визначає наймолодший розряд переведеного числа ( 8 або 16 ), а отриманий залишок від ділення визначає

коефіцієнт ваги в цьому розряді.

Наприклад, перевести у вісімкову та шістнадцяткову системи числення відповідно десяткові числа (1987) та (1998) , а також перевести надалі отримані числа в двійкові:

_1 9 8 7 / 8 _1 9 9 8 / 16

1 6 _ 2 4 8 / 8 1 6 _124 / 16

_3 8 2 4 _3 1 / 8 _3 9 112 7

3 2 0 2 4 3 /8 3 2 12 16 = 7

_6 7 _8 7 3 _7 8

6 4 8 64 16 = (12) =С

3 0 14

8 = 3 8 =0 8 =7 8 =3 16 = (14) = Е

Отримуємо результат: (1987) = Отримуємо результат: (1998) =

= (3703) = (011 111 000 011) = 7СЕН = (0111 1100 1110)

Послідовні наступні ділення результатів, які отримані від попередніх

операцій ділення, визначають інші розряди числа і їх проводять до повного

розложення числа.

Такі перетворення використовуються також для швидкого переведення

десяткового числа в двійкове через початкове переведення числа у вісімкове

(або шістнадцяткове).

Для переводу отриманих результатів в двійкову систему числення кожна цифра вісімкового числа та символи шістнадцяткового числа надані своїми двійковими кодами (відповідною тріадою та тетрадою).

(В прикладі ділення 1998 на 16, залишок після першого ділення визначає наймолодшу позицію символу в шістнадцятковій системі числення 16 і дорівнює десятковому числу 14, яке відповідає символу Е в шістнадцятковій системі числення та двійковій тетраді 1110).

Правила переведення вісімкових та шістнадцяткових чисел у десяткові.

Переведення вісімкових та шістнадцяткових чисел у десяткові теж може бути виконане різними способами.

За першим способом вісімкові або шістнадцяткові числа необхідно перевес-ти у двійкові, а далі виконати розгорнуту форму запису двійкового числа.

Наприклад, №-ри секцій для кожного блоку програми технологічної мови

«Мікрол» мікропроцесорного контролеру «Ломіконт» надаються в вісімковій

системі числення і становлять від 00 до 37. Переведемо число (37) в

десяткове через попереднє його перетворення в двійкове [ (3) = (011) , а (7) = (111) ]:

(37) = (0 1 1 1 1 1 ) =

= 0 + 16 + 8 + 4 +2 +1 = (31) .

За другим способом – необхідно виконати безпосередньо розгорнуту форму запису вісімкового або шістнадцяткового чисел, які переводяться в деяткову систему числення.

Наприклад, перевести (234) в десяткове:

(234) = 2*8 + 3*8 + 4*8 = 2*8 + 3*8 + 4*8 = 2*64 + 3*8 + 4*1 = (156) .

Ще приклад, перевести (234) = 234Н в десяткове:

(234) = 2*16 + 3*16 + 4*16 = 2*16 + 3*16 + 4*16 = 2*256 + 3*16 + 4*1 = = 512 + 48 + 4 = (564) .