6 - Подання чисел в ЕОМ

Подання чисел в ЕОМ

1. Загальні відомості

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

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

2. Числа з фіксованою точкою

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

Приклад.
Осередок з цілою і дробовою частиною.

6 - Подання чисел в ЕОМ

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

Приклад.
Осередок із записом цілого числа.

6 - Подання чисел в ЕОМ

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

При поданні в ЕОМ чисел в природній формі встановлюється фіксована довжина розрядної сітки. При цьому розподіл розрядів між цілою і дробовою частинами залишається незмінним для будь-яких чисел. У зв'язку з цим в інформатиці існує інша назва природної форми подання чисел - з фіксованою точкою (коми).

Працюючи на комп'ютері, ми можемо вводити числа з фіксованою комою в будь-якому вигляді. Так само вони будуть висвітлюватися на екрані комп'ютера, але перед занесенням в пам'ять комп'ютера вони перетворюються відповідно до розрядної сіткою і зберігаються або з коми, фіксованою після останнього розряду (цілі числа), або з коми перед старшим розрядом дробу.

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

Зазвичай цілі числа в ЕОМ займають один, два або чотири байти. Один, як правило, старший біт відводиться під знак числа. Знак позитивного числа "+" кодується нулем, а знак негативного числа "-" - одиницею. Цілі числа без знака в двох байтовому форматі можуть набувати значень від 0 до 2 16 -1 (до 65535), а зі знаком "-" від -2 15 до 2 15 -1, тобто від -32768 до 32767.

У всіх розрядах завжди має бути щось записано, навіть якщо це "незначний" нуль. Число розташований так, що його наймолодший двійковий розряд записується в крайній првие біт розрядної сітки. Наприклад, десяткове число 19 (100112) в 16-розрядної сітці записується так:


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

Істотним недоліком машин з фіксованою точкою є кінцевий діапазон представлення величин. Може здатися, що це обмежує обчислювальні можливості ЕОМ. Але насправді коротка довжина слова призводить тільки до зниження швидкодії машин: обробка великих чисел ведеться послідовно-паралельним способом, самі числа представляються декількома машинними словами, і для виконання операцій над ними необхідно складати спеціальні програми. Тому якщо результат обчислень в природній формі виходить за допустимі межі, то в сучасних комп'ютерах проводитися автоматичний перехід до представлення даних в експотанціальной формі (але тільки якщо це обумовлено програмою).

· Для прискорення обчислень в місцях, де не потрібна висока точність. У більшості сучасних процесорів ФЗ апаратно не реалізована, але навіть програмна ФЗ дуже швидка - тому вона застосовується в різного роду ігрових движках, растеризатор [1] і т. Д. Наприклад, движок Doom для вимірювання відстаней використовує фіксовану кому 16,16, для вимірювання кутів - 360 ° = 65536.

· Для запису чисел, які за своєю природою мають постійну абсолютну похибку: координати в програмах верстки, грошові суми. Наприклад, файли метрики шрифтів TeX використовують 32-розрядний знаковий тип з фіксованою комою (12,20).

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

1. Визначте максимальні значення цілих чисел зі знаком і без знака при їх 8- і 32-розрядному поданні.

3. Числа з плаваючою точкою (коми)

Незручність уявлення чисел у формі з фіксованою точкою проявляється при вирішенні завдань, в яких фігурують як дуже малі так і дуже великі числа. У конкретних фізичних, математичних та інших завданнях діапазон зміни величин може становити, наприклад від 10 -30 до 10 30. Можна переконатися, що в поданні з фіксованою комою знадобилися б виконавчі слова довжиною близько 256 біт (32 байт), по 128 біт на цілу і дробову частини. Однак робота ЕОМ з операндами такої довжини була б вкрай неефективною.

Точність числа визначається не його довжиною, а кількістю вірних значущих цифр.

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

4,72 x 10 5, 472 x 10 3, 4720 x 10 2 мікрон

4,72 х 10 -4; 47,2 x 10 -5; 472 x 10 -6 км.

З цього прикладу також видно, що положення коми може змінюватися. Тому в інформатиці подання до ЕОМ числа в експотенціальной формі називаються поданням з плаваючою точкою (коми).

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

Для представлення чисел з плаваючою точкою (ЧПТ) використовується напівлогарифмічний форма запису числа:

де q - основа системи числення, p - порядок числа, m - мантиса числа N.

Положення точки визначається значенням порядку p. Зі зміною порядку точка переміщається (плаває) вліво або вправо.

12510 = 12.5 * 10 1 = 1.25 * 10 2 = 0.125 * 10 3 = 0.0125 * 10 4 =.

Для встановлення однозначності при записі чисел прийнята нормалізована форма запису числа. Мантиса нормалізованого числа може змінюватися в діапазоні: 1 / q ≤ | m | <1. Таким образом в нормализованных числах цифра после точки должна быть значащей.

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


а) подання чисел в форматі півслова

6 - Подання чисел в ЕОМ

б) представлення чисел в форматі слова


Найбільш характерно уявлення ЧПТ в форматі слова (32 розряду).
Приклад.
Число А = -3.510 = -11.12 = -0.111 х 10 10

Максимальним числом уявленим в форматі слова буде A = (0.1111. 1 · 10 1111111) 2 (1 · 2 127) 10.

Таким чином числа з плаваючою точкою дозволяють збільшити діапазон оброблюваних чисел, але при цьому точність зображення чисел визначається тільки розрядами мантиси і зменшується в порівнянні з числами з фіксованою точкою. При записи числа в форматі слова діапазон представимо чисел буде від -1 · 2 127 до 1 · 2 127 (2 127 10 38), а точність визначатися мантиссой, що складається з 23 розрядів. Точність може бути підвищена шляхом збільшення кількості розрядів мантиси. Це реалізується шляхом подання чисел з так званої подвійної точністю (використовується формат подвійного слова):

6 - Подання чисел в ЕОМ

Як комп'ютер виконує арифметичні дії над нормалізованими числами?

До початку виконання арифметичної дії операнди операції розміщуються у відповідні регістри АЛУ.

Додавання і віднімання

При додаванні і відніманні спочатку проводиться підготовча операція, яка називається вирівнюванням порядків.

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

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

Приклад 1. Скласти двійкові нормалізовані числа 0.10111. 2 -1 і 0.11011. 2 10. Різниця порядків доданків тут дорівнює трьом, тому перед складанням мантиса першого числа зсувається на три розряди вправо:

Приклад 2. Виконати віднімання двійкових нормалізованих чисел 0.10101. 2 10 і 0.11101. 2 1. Різниця порядків зменшуваного і від'ємника тут дорівнює одиниці, тому перед вирахуванням мантиса другого числа зсувається на один розряд вправо:

Результат вийшов не нормалізованим. тому його мантиса зсувається вліво на два розряду з відповідним зменшенням порядку на дві одиниці: 0.1101. 2 0.

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