Смекни!
smekni.com

Аналіз теорії цифрових автоматів (стр. 2 из 7)

Візьмемо, наприклад, код:

(10011110,0011)2 = (236,14)8 .

2 3 6 1 4

Тут, як і в двійково-десятковому записі, в цілій частині відкинуті крайні зліва нулі, а в дробовій частині - крайні справа. Безумовно, треба їх враховувати як недостатні у відповідних тріадах двійкових цифр. Зворотній перевід чисел з вісімкової системи числення в двійкову також простий. Кожну цифру вісімкового числа записуємо трійкою двійкових символів, тобто записуємо його в двійково-вісімковій системі, а так як цей запис співпадає з двійковим, то ми одержимо число в двійковій системі. Переведемо, наприклад, число (3514,72) 8 з вісімкової системи в двійкову:

(3514,72)8 = (11101001100,11101)2 .

3 5 1 4 7 2

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

(0)16 = (0000)2 (8)16 = (1000)2

(1)16 = (0001)2 (9)16 = (1001)2

(2)16 = (0010)2 (а)16 = (1010)2 = (10)10

(3)16 = (0011)2 (b)16 = (1011)2 = (11)10

(4)16 = (0100)2 (c)16 = (1100)2 = (12)10

(5)16 = (0101)2 (d)16 = (1101)2 = (13)10

(6)16 = (0110)2 (e)16 = (1110)2 = (14)10

(7)16 = (0111)2 (f)16 = (1111)2 = (15)10 .

Так як записи числа в двійково-шістнадцятковій і двійковій системах за сформульованою вище теоремою співпадають, то, замінивши всі шістнадцяткові цифри деякого числа на відповідні четвірки двійкових цифр, отримаємо таке ж число в двійковій системі числення. При цьому запис числа буде використовувати приблизно в чотири раза менше цифр, ніж в двійковій системі числення. Наприклад, число (3c2e9) 16 може бути представлене в двійковій системі числення наступним чином: (11 1100 0010 1110 1001) 2.

3 c 2 e 9

Під кожною четвіркою двійкових цифр ми записали відповіднийі шістнадцятковий символ. Дві форми комп’ютерного представлення числових даних. Їх переваги і недоліки.

Форма з фіксованою крапкою

В сучасних ЕОМ застосовуються два способу представлення чисел: з фіксованою крапкою і плаваючою крапкою.

В першому випадку місце коми, яка відділяє цілу частину числа від дробової, визначається на етапі конструювання ЕОМ. Зразу ж вказується кількість розрядів, які відводяться для зображення цілої і дробової частин. Причому кожному розряду комірки відповідає завжди один і той же розряд числа, що суттєво спрощує виконання арифметичних дій.

Нехай, наприклад, комірка пам’яті машини має 24 двійкових розряда. Як ми знаємо, в комірку можна записати будь-яке машинне слово, тобто довільний набір з нулів і одиниць. Якщо це слово - число, то в конструкції машини може бути передбачено його представлення в формі з фіксованою комою. Наприклад, воно може бути таким: крайній зліва розряд - знаковий, потім наступні 9 розрядів відводяться під цілу частину і, накінець, 14 розрядів, які залишилися, під дробову частину числа, тобто кома тут завжди на одному і тому ж місці - після десятого розряду машинного слова (з врахуванням знакового розряду). Тоді найбільше число, яке можна представити, буде: (111111111,11111111111111) 2.

Видно, що воно менше, ніж 29 = (512) 10. А найменше за модулем відмінне від нуля число дорівнює

(000000000,00000000000001) 2 = 2-14.

Тобто, діапазон чисел, які можна записати в комірку пам’ті машини, тут такий:

2-14 < |a| < 29.

Форма з плаваючою крапкою.

Для того, щоб збільшити діапазон чисел, використовують другу форму запису чисел - з плаваючою комою. Будь-яке число в системі числення з основою Q можна записати так:

a=A*Qp.

A називають мантисою числа, а P - порядком.

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

3,14 = 0,314*101.

Тут мантиса дорівнює 0,314, а порядок 1. Очевидно, таке представлення далеко не однозначне. Число 3,14 записати так:

3,14=3,14*100 = 31,4*10-1 = 0,0314*102 =...

Порядок числа визначає положення коми в запису мантиси. При коректуванні порядку відповідним чином змінюється і положення коми - кома ніби ”плаває".

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

В цьому випадку мантиса повинна задовільняти вимозі 1/10 <|А|< 1 (мова йде про десяткову систему числення). Iншими словами, перша цифра мантиси після коми повинна бути відмінною від нуля.

9. Представлення довільного числа в формі з плаваючою крапкою. Мантиса та порядок числа. Нормалізована форма представлення числа.

Форма з плаваючою крапкою

Для того, щоб збільшити діапазон чисел, використовують другу форму запису чисел - з плаваючою комою. Будь-яке число в системі числення з основою Q можна записати так:

a=A*Qp.

A називають мантисою числа, а P - порядком.

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

3,14 = 0,314*101.

Тут мантиса дорівнює 0,314, а порядок 1. Очевидно, таке представлення далеко не однозначне. Число 3,14 записати так:

3,14=3,14*100 = 31,4*10-1 = 0,0314*102 =...

Порядок числа визначає положення коми в запису мантиси. При коректуванні порядку відповідним чином змінюється і положення коми - кома ніби ”плаває". Звідси і назва методу представлення чисел. З плаваючою комою число, як ми тільки що бачили, представляється неоднозначно. Одне з цих представлень називають нормалізованим. В цьому випадку мантиса повинна задовільняти вимозі 1/10 <|А|< 1 (мова йде про десяткову систему числення). Iншими словами, перша цифра мантиси після коми повинна бути відмінною від нуля. В нашому прикладі десяткове число а=3,14 в нормалізованій формі має вигляд

3,14=0,314*101.


Запишемо кілька чисел в двійковій системі числення в нормалізованій формі:

(7) 10 = (111) 2 = 111*20 = 111*100 = 0,111*23 = 0,111*1011

(-9,5) 10 = (-1001,1) 2 = - 0,10011*24 = - 0,10011*10100.

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

0 1 2 3 4 5 6 7 8 9 10 11 23

0 1 1 0 1 0 1 1 1 0 1 0

Знак числа| | Порядок Мантиса

Додатнє число, максимальне з можливих в пам’яті ЕОМ:

0 1 2 3 4 5 6 7 8 9 10 11 23

0 0 1 1 1 1 1 1 1 1 1 1 1

Знак числа| | Порядок Мантиса Знак порядку|

Мінімальне за модулем, відмінне від нуля і нормалізоване число

а= (0,1*10-1111111) 2 =1/2*2-127 = 2-128:

0 1 2 3 4 5 6 7 8 9 10 11 23

0 1 1 1 1 1 1 1 1 1 0 0 0

Знак числа| | Порядок Мантиса Знак порядку|

Відмітимо, що найменше за модулем число, не рівне нулю і не нормалізоване, яке можна представити в комірці:

а= (1/2) +15 *2-127 = 2-142.

В цьому випадку мантиса

А= (0, 000...01) 2 = 2-15, порядок Р = - (1111111) 2 = - (127) 10.

Прямий, зворотній та доповнюючий коди чисел

В ЕОМ доцільно представляти знаки чисел з допомогою тих же символів через, через які записується саме число. Для цього виділяється додатковий розряд, який називають знаковим і розташовують зліва від старшого розряду числа. Будемо позначати знакові розрядні числа

як
і відділяти їх крапками від цілої частини числа і комами від дробової.

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

Прямий код використовується для вводу-виводу інформації і в запам’ятовуючих пристроях.

Додавання чисел в прямому коді (з одинаковими знаками) не викликає труднощів. Однак додавання чисел з різними знаками в прямих кодах незручно, так як повинно бути спеціальне обладнання для віднімання чисел і визначення знаку різниці.

Операцію алгебраїчного додавання чисел можна звести до операцій додавання при використанні зворотніх і додаткових кодів.

Представлення додатнього числа в зворотньому коді співпадавє з його прямим кодом. Для отримання зворотнього коду від’ємного числа в двійковій системі необхідно в знаковому розряді записати 1, а в інших розрядах одиниці замінити нулями, а нулі одиницями. Аналогічну заміну роблять при перетворенні зворотнього коду від’ємного числа в прямий. На відміну від прямого коду, в зворотньому не можна відкидати нулі після знакового розряду в цілій частині і нулі в кінці дробової частини від’ємного числа.

Представлення додатнього числа в доповнюючому коді співпадавє з його прямим кодом. Правило формування додатнього коду від’ємного числа формулюється так: отримати зворотній код числа і додати 1 в молодший розряд числа. Перетворення доповнюючого коду від’ємного числа здійснюється або зворотнім шляхом (відняти 1 і перетворити в зворотній код) або утворити доповнюючий код до доповнюючого. Нуль, на відміну від прямого і зворотнього кодів, в доповнюючому коді має єдине представлення