
Gmail / Лекция1.Дубль1
.pdf
|
х0 , 85 |
|
||
|
|
2 |
|
|
|
х |
1 , 70 |
|
0,85(10) = 0,11011 ... (2) |
|
2 |
|
|
|
|
|
|
0,11011(2) = 0 20+ 1 2-1+ 1 2-2+ 0 2-3+ 1 2-4+ 1 2-5 = |
|
|
х |
1 , 40 |
|
|
|
2 |
|
0,5 + 0,25 + 0,0625 + 0,03125 = 0,84375(10) |
|
|
|
|
||
|
х0 , 80 |
|
||
|
|
2 |
|
|
х1 , 60 2
1 , 20
. . .
Для перетворення змішаних чисел використовується обидва правила (відповідно для цілої та дробової частин числа).
Переведення чисел в десяткову систему числення. Виконується за правилом заміщення,
що реалізується на основі формули представлення числа в позиційній системі числення :
100101 (2) = 1 25 + 0 24 + 0 23 + l 22 + 0 21 + l 20 = 32 + 4 + 1 = 37(10)
0,1l011 (2) = 1 2-1 + 1 2-2 + 0 2-3 + l 2-4 + l 2-5 = 0,5 + 0,25 + 0,0625 + 0,03125 = 0,85(10) 100101,1l011 (2) = 1 25 + 0 24 + 0 23 + l 22 + 0 21 + l 20 + 1 2-1 + 1 2-2+ 0 2-3 + l 2-4 + l 2-5 =
32 + 4 + 1 + 0,5 + 0,25 + 0,0625 + 0,03125 = 37,85(10)
Скорочені правила переведення чисел.
1.При переведенні двійкового числа в вісімкове воно ділиться на тріади (відносно коми), які замінюються вісімковими числами:
111 001 101,010 (2) = 715,2(8).
2.При переведенні двійкового числа в шістнадцяткове воно ділиться на тетради (відносно коми), які замінюються шістнадцятковими цифрами:
0001 1100 1101,0111(2) = 1CD,7(16).
3.При переведенні вісімкового числа в двійкове кожна його цифра замінюється двійковою тріадою:
715,2(8) = 111 001 101,010 0(2).
4.При переведенні шістнадцяткового числа в двійкове кожна його цифра замінюється двійковою тетрадою:
1CD,7(16) = 0001 1100 1101,0111(2).
Якщо при розбитті двійкового коду в крайніх тріадах (тетрадах) недостатньо цифр, вони доповнюються нулями. Відповідно, «зайві» нулі, що не ввійшли в тріади (тетради) відкидаються.
Подання даних в комп’ютері
Структура внутрішньої пам’яті комп’ютера
Для того, щоб зрозуміти, як подається (кодується) інформація в комп'ютері, потрібно знати структуру його внутрішньої пам'яті, основні її структурні одиниці. Такими структурними одиницями є біт, байт, машинне слово.
З попереднього матеріалу відомо, що інформація подається в комп'ютері у двійковому коді і що один символ цього коду («0» або «1») несе 1 біт інформації. Отже, внутрішня пам'ять ком- п'ютера має дискретну бітову структуру.
В одному байті пам'яті зберігається один байт інформації. Всі байти внутрішньої пам'яті пронумеровано — кожен байт пам'яті має свою унікальну адресу. Нумерація адрес починається з нуля і подається у двійкових кодах. Для компактного подання адрес використовують також 16-кову систему числення.
11

Машинне слово — це послідовність байтів, яка сприймається пам'яттю і обробляється процесором як єдине ціле, що має певний смисловий зміст. Як правило, в одному машинному слові може бути подане одне число або одна команда.
Адреса машинного слова завжди дорівнює адресі молодшого байта, який входить до цього слова. Запис інформації до пам'яті, а також зчитування інформації з пам'яті виконується за адресами машинних слів.
Машинне слово є машинозалежною (платформозалежною) величиною. Його розмір залежить від розрядності процесора, яка в свою чергу визначається розрядністю основних його регістрів (зазвичай, деяка степінь двійки).
Фіксована ширина розрядної сітки1 накладає обмеження на діапазон подання чисел, що обумовлює особливості комп’ютерної арифметики такі як похибки подання чисел, поняття машинного нуля, переповнення розрядної сітки, тощо.
Під машинним поданням числа розуміють спосіб (структуру, порядок) розміщення бітів числа в розрядній сітці комп’ютера.
Діапазоном подання чисел D=|X|max / |X|min називають відношення максимально та мінімально можливих для даного подання абсолютних значень чисел.
Подання числових даних
Через обмеження довжини машинних слів, множина чисел, які можна представити в ЕОМ, є кінцевою. Порівняння різних форм представлення чисел в комп'ютерах зазвичай проводиться на основі оцінки діапазону і точності представлення числа.
У повсякденній практиці найбільш поширеною є форма подання чисел у вигляді послідовності цифр, розділеної комою на цілу і дробову частини. Числа, представлені в такій формі, називаються числами в природній формі. У такій формі число записується в природному вигляді, наприклад, 12560 - ціле число, 0,003572 - правильний дріб, 4,89760 - неправильний дріб.
При поданні чисел у такій формі обов'язково потрібно для кожного числа вказати положення його коми в розрядної сітці, виділеній для представлення числа в машині, що вимагає додаткових апаратних витрат досить великого обсягу. Тому в комп'ютерах набули поширення дві інші форми подання чисел:
-з фіксованою крапкою (комою);
-з плаваючою крапкою (нормальна форма, експоненціальна форма).
Подання чисел у формі з фіксованою крапкою. При даній формі подання положення крапки в розрядній сітці машини фіксується схемотехнічно (тобто апаратними засобами) раз і назавжди. У цьому випадку відпадає необхідність у вказанні її положення.
Положення крапки в розрядній сітці строго фіксується, зазвичай або перед старшим (лівим) розрядом числа (рис. 5 а), або після молодшого (правого) розряду (рис. 5 б). У першому випадку число представляється як правильний дріб (його значення менше від одиниці за абсолютною величиною), у другому - як ціле число. Окремих розрядів для зберігання коми та запису цілої (дробової) частини числа не виділяється, тому що ціла (дробова) частина за замовчуванням дорівнює 0, а положення коми строго фіксовано.
1 Розрядна сітка - кількість розрядів, які використовуються в ЕОМ для подання чисел
12
Недолік цього способу — малий діапазон подання чисел і необхідність їх масштабування. Тому у даний час в переважній більшості комп'ютерів в форматі з фіксованою точкою представляються лише цілі числа.
При цьому використовують два варіанти подання цілих чисел: зі знаком і без знака.
Для числа зі знаком крайній лівий розряд відводиться під знак числа. У цьому розряді записується нуль для додатних чисел і одиниця - для від'ємних. Числа без знака займають усі розряди числа, тобто числа можуть бути тільки додатними. Нумерація розрядів числа зазвичай ведеться справа наліво.
Кількість розрядів у розрядної сітці, відведених для зображення числа, визначає діапазон і точність представлення числа з фіксованою комою.
Максимальне за абсолютною величиною машинне число (тобто без урахування знака) при фіксації коми після старшого розряду дорівнює |X|max = 0,1...1...1 = 1-2-n, а мінімальне |X|min = 0,0...0...01 = 2-n, де n – кількість числових розрядів у розрядній сітці. Таким чином, значення всіх можливих величин чисел визначається нерівністю 2-n |X| 1-2-n.
Аналогічно для чисел, представлених у формі з фіксацією коми після молодшого розряду, максимальне за абсолютною величиною двійкове число зображується одиницями у всіх розря-
дах, виключаючи знаковий. Тобто, для цілого числа |X|max = 1...1...1 = 2n-1-1, |X|min = 0...0...01 = 1
і 1 |X| 2n-1–1.
Діапазон подання чисел з фіксованою комою невеликий і дорівнює D=|X|max / |X|min = (1-2-n
)/2-n = (2n-1)/1 = 2n-1 2n
Число, абсолютне значення якого менше одиниці молодшого розряду розрядної сітки (мінімального машинного слова для даного подання), називають у цьому випадку машинним нулем. Таке число буде записано в розрядну сітку комп’ютера у вигляді 0, тому що для його подання не вистачає довжини розрядної сітки, хоча воно насправді і не дорівнює 0.
У деяких випадках, коли можна оперувати тільки модулями чисел, вся розрядна сітка, включаючи самий старший розряд, відводиться для представлення числа, що дозволяє розширити діапазон зображення чисел.
Якщо число, отримане в результаті обчислень перевищує за абсолютним значенням максимальне машинне слово для заданого подання, то відбувається так зване переповнення розрядної сітки комп’ютера.
Для ефективності використання пам'яті в ЕОМ використовують різні методи представлення цілих чисел. Зокрема, для представлення цілих чисел із знаками застосовуються
прямий,
обернений,
додатковий коди.
♦♦♦Додатні числа у прямому, оберненому та додатковому кодах записуються однаково, а саме двійковим кодом числа з цифрою 0 у знаковому розряді.
Прямий код від’ємного числа відрізняється від прямого коду додатного числа тим, що значення його знакового розряду (старшого біта числа) дорівнює не 0, а 1. Наприклад, прямим кодом числа 5 є 0101, а числа 127 — 01111111; відповідно, прямий код числа –5 становить 1101, а код числа –127 записується як 11111111.
Обернений код від’ємного числа отримується із прямого коду шляхом заміни його цифр на їх доповнення до 1. Код знака зберігається без змін.
Заміна цифр їх доповненням для двійкової системи співпадає з операцією інверсії, тобто у всіх розрядах нулі потрібно замінити на 1, а одиниці — на 0. Наприклад, обернений код числа – 5 записується як 1010, а код числа –127 — як 10000000.
Додатковий код від’ємного числа отримується із оберненого коду збільшенням на 1 його молодшого розряду. При цьому перенос із знакового розряду ігнорується. Наприклад, додатковий код числа –5 записується як 1011, а код числа –127 — як 10000001.
13

Додатні числа в ПК завжди представляються за допомогою прямого коду. Для представлення ж від’ємних чисел використовується додатковий код. Це пов'язано із спрощенням виконання арифметичних операцій.
Якби ПК обробляв прямі коди додатних і від’ємних чисел, то при виконанні арифметичних операцій слід було б виконувати ряд додаткових дій. Наприклад, при додаванні потрібно було б перевіряти знаки обох операндів і визначати знак результату: якщо знаки однакові, то обчислюється сума операндів і їй присвоюється той же знак; якщо ж знаки різні, то з більшого по абсолютній величині числа віднімається менше і результату присвоюється знак більшого числа. Тобто, при представленні чисел лише у прямого коді, операція додавання реалізується через досить складний алгоритм. Якщо ж від’ємні числа представляти додатковим кодом, то операція додавання, у тому числі і чисел із різними знаками, зводиться до їх порозрядного додавання.
Оскільки прямий код використовується майже виключно для представлення додатних чисел, а додатковий – для від’ємних, то майже завжди, якщо в першому розряді 1, то ми маємо справу із додатковим кодом (0 позначає додатне число, а 1 – від’ємне).
Подання чисел у формі з плаваючою крапкою.
Форму з плаваючою комою застосовують для розширення діапазону і зменшення відносної похибки подання чисел у МП.
Число у формі з плаваючою крапкою (у нормалізованій формі) представляється у вигляді добутку деякого ступеня основи системи числення і цифрової частини, що має, як правило, вид правильного дробу:
Х = М р s,
де М – мантиса числа Х, p ± – характеристика числа Х, p – основа системи числення , s – порядок числа Х.
У мантисі зберігаються значущі цифри числа, а порядок визначає його величину. Знак числа збігається зі знаком мантиси.
Для запису числа у формі із плаваючою комою в розрядній сітці фіксуються чотири поля (рис. 7): розряд знака мантиси, поле цифрових розрядів мантиси довжиною n, розряд знака порядку, поле цифрових розрядів порядку довжиною k. Чергування полів і значення n й k можуть бути різні й визначаються конструктивними особливостями конкретного комп’ютера.
Ця форма представлення числа неоднозначна, тому що передбачає плавання крапки:
73,28 = 73,28 100 = 7,328 101 = 0,7328 102 = 0,07328 103 = 732,8 10-1 = ...
Для однозначності представлення таких чисел і підвищення точності запису значень мантиси М у машинах із плаваючою комою їх представляють у так званому нормалізованому вигляді2, при якому 2-1 |М| 1-2-n. У свою чергу діапазон подання порядку – (2k –1) |s| (2k – 1). Отже, мінімальне число, яке можна представити в розрядній сітці, дорівнює
, а максимальне
. Діапазон подання для чисел із плаваючою комою:
2 Нормалізованим називается число, мантиса якого задовольняє наступним нерівностям
14
.
Частіше за все цей формат використовується для представлення дуже великих або дуже малих дійсних чисел.
Кодування текстових даних
Якщо кожному символу алфавіту поставити у відповідність певне ціле число - його код, то за допомогою двійкового коду можна кодувати і текстову інформацію. Вісьмох двійкових розрядів достатньо для кодування 256 різних символів. Цього вистачить, щоб закодувати усі символи англійської і російської мов (як рядкові, так і прописні), а також роздільні знаки, символи основних арифметичних операцій і деякі загальноприйняті спеціальні символи.
Технічно це виглядає досить просто, однак для того, щоб увесь світ однаково кодував текстові дані, потрібні єдині таблиці кодування.
Для англійської мови, яка захопила де-факто нішу міжнародного засобу спілкування, інститут стандартизації США (ANSI — American National Standard Institute) ввів у дію 8-розрядну систему кодування ASCII (American Standard Code for Information Interchange — стандартний код інформаційного обміну США), яка підтримує кодування 256 (28 ) незалежних значень.
Ця система складається з двох кодових таблиць – базової і розширеної (рис. 8). Базова таблиця закріплює значення кодів від 0 до 127, розширена – від 128 до 255. Перші 32 коди базової таблиці ASCII віддані виробникам апаратних засобів (у першу чергу виробникам комп'ютерів і друкувальних пристроїв). У цій області розміщаються так звані управляючі коди, яким не відповідають ніякі символи мов, і, відповідно, ці коди не виводяться ні на екран, ні на пристрої друку, але ними можна управляти виведенням інших даних. Коди з 32 до 127 - призначені для кодування символів англійського алфавіту, розділових знаків, цифр, арифметичних операцій і деяких допоміжних символів. Розширена частина системи кодування використовується національними системами шляхом завантаження потрібної кодової сторінки. Наприклад, Windows-1251
– кодування, що є стандартним 8- бітним кодуванням для всіх локалізованих українських і російських версій Microsoft Windows. Характерною рисою Windows-1251 ( Рисунок 3.2) є наявність практично всіх символів, що використовуються в слов'янській кириличній писемності для звичайного тексту. Windows-1251 містить всі символи для російської, української, білоруської, сербської і болгарської мов.
Серед недоліків кодування Windows-1251 слід зазначити відсутність символів псевдографіки, що однак може бути цілком виправдано для операційної системи з розвинутим графічним інтерфейсом.
Якщо кодувати символи не восьми розрядними, а 16-розрядними двійковими числами, то діапазон можливих значень кодів стане набагато більше. Тому для уніфікації кодування текстових даних була розроблена універсальна система UNICODE, в основі якої лежить 16-розрядне кодування символів. 16 розрядів дозволяють забезпечити унікальні коди для 65 536 (216) різних символів — цього досить для розміщення в одній таблиці символів більшості мов планети.
Незважаючи на тривіальну очевидність такого підходу, простий механічний перехід на дану систему довгий час стримувався через недостатню розвиненість ресурсів обчислювальної техніки (у системі кодування UNICODE усі текстові документи автоматично стають удвічі довшими). Зараз технічні засоби досягли необхідного рівня забезпеченості ресурсами і сьогодні спостерігається поступовий перехід документів і програмних засобів на універсальну систему ко-
дування UNICODE.
Успіхи Unicode в уніфікації наборів символів призвели до його розповсюдження і домінуючого використання в інтернаціоналізації і локалізації програмного забезпечення комп’ютерів. Стандарт був використаний в багатьох нових технологіях, включаючи XML, мову програмування Java і сучасні операційні системи. Потужну підтримку кодування Unicode отримало з боку корпорації Microsoft. Windows NT була першою операційною системою, повністю побудова-
15

ною на Unicode. Успіхи Unicode дозволяють зробити припущення, що в кінцевому підсумку всі існуючі сьогодні системи кодування символів в майбутньому замінить Unicode.
Кодування графічних даних
Основними форматами представлення зображень є растрові і векторні.
У растровому форматі зображення в процесі кодування розбивається на прямокутну матрицю дрібних точок - пікселів. Вони утворюють характерний візерунок, що називають растром.
Растрове зображення
Кожен піксель характеризується лінійними координатами та індивідуальними властивостями кожної точки (яскравістю, кольором), які можна виразити за допомогою цілих чисел, у тому числі і у двійковому коді.
Параметри растрового зображення:
роздільна здатність зображення (розмір матриці),
розрядність одного піксела (глибина кольору).
Загальноприйнятим вважається використання для представлення чорно-білих ілюстрацій 256 градацій сірого кольору. Тому для кодування яскравості будь-якої точки зазвичай досить 8- розрядного двійкового числа.
Для кодування кольорових графічних зображень застосовується принцип декомпозиції довільного кольору на основні складові. У якості таких складових використовують три основні кольори: червоний (Red, R), зелений (Green, G) і синій (Blue, В), оскільки вважається, що будьякий колір, видимий людським оком, можна одержати шляхом механічного змішування цих трьох основних кольорів. Така система кодування називається системою RGB (по перших буквах назв основних кольорів).
Якщо для кодування яскравості кожної з основних складових кольору використовувати по 256 значень (8 двійкових розрядів), то на кодування кольору однієї точки треба затратити 24 розрядів. При цьому система кодування забезпечує однозначне визначення 16,5 млн різних кольорів, що насправді близько до чутливості людського ока. Режим представлення кольорової графіки з використанням 24 двійкових розрядів називається повнокольоровим (True Color).
Кожному з основних кольорів можна поставити у відповідність додатковий колір, тобто колір, що доповнює основний колір до білого. Неважко помітити, що для кожного з основних кольорів додатковим буде колір, утворений сумою пари інших основних кольорів.
Відповідно, додатковими кольорами є: блакитний (Cyan, С), пурпурний (Magenta, M) і жовтий (Yellow, Y). Принцип декомпозиції довільного кольору на складові компоненти можна застосовувати не тільки для основних кольорів, але і для додаткових, тобто будь-який колір можна представити у виді суми блакитної, пурпурної і жовтої складових. Такий метод кодування
16

кольору прийнятий у поліграфії, але в поліграфії використовується ще і четверта фарба — чорна (Black, К). Тому дана система кодування позначається чотирма літерами CMYK (чорний колір позначається буквою К, тому, що буква В вже зайнята блакитним кольором). Для представлення кольорової графіки в цій системі треба мати 32 двійкових розряди. Такий режим теж на-
зивається повнокольоровим (True Color).
Якщо зменшити кількість двійкових розрядів для кодування кольору кожної точки, то можна скоротити обсяг даних, але при цьому діапазон кольорів помітно скорочується. Кодування кольорової графіки 16-розрядними двійковими числами називається режимом High Color.
При кодуванні інформації про колір за допомогою 8 біт даних можна передати тільки 256 колірних відтінків. Такий метод кодування кольору називається індексним. Оскільки 256 значень недостатньо, щоб передати весь діапазон кольорів, доступний людському оку, то код кожної точки растра виражає не колір сам по собі, а тільки його номер (індекс) в довідковій таблиці, яка називається палітрою. Зрозуміло, ця палітра повинна прикладатися до графічних даних
—без неї не можна правильно відтворити інформацію на екрані чи папері.
Увекторному форматі зображення формується із примітивних об'єктів (примітивів), таких як лінія, крива, крапка, прямокутник, коло, параметричні криві, залитих певним кольором або шаблоном, зв'язних областей, набраних певним шрифтом уривіви тексту і т. ін. Для пересічних примітивів задається порядок, в якому один з них перекриває інший. Кожен примітив описується за допомогою математичних формул своїми геометричними координатами. Координати примітивів бувають як дво-, так і тривимірними. Для тривимірних зображень, природно, набір примітивів розширюється, в нього включаються і різні поверхні - сфери, еліпсоїди і їх сегменти, параметричні різноманіття і ін.
Двовимірне векторне зображення |
Тривимірне векторне зображення |
Двомірні векторні формати гарно підходять для представлення креслень, діаграм, шрифтів і відформатованих текстів. Такі зображення зручно редагувати - зображення і їх окремі елементи легко піддаються масштабуванню і іншим перетворенням. Приклади двомірних векторних фо-
рматів - Postscript, PDF (Portable Document Format), WMF (Windows Metafile), PCL (Printer
Control Language). Прикладом векторного представлення анімаційних зображень є Macromedia Flash. Тривимірні векторні формати широко використовуються в системах автоматизованого проектування і для генерації фотореалістичних зображень методами трасування променів і т. ін.
Проте перетворення реальної сцени (наприклад, отриманої оцифруванням відеозображення або скануванням фотографії) у векторний формат є складним завданням. Програмивекторізатори існують, але споживають дуже багато ресурсів, а якість зображення у багатьох випадках виходить низькою. Більш практичним для цих цілей виявився підхід, який використовує більшість сучасних пристроїв візуалізації - растрові дисплеї.
Кодування звукової інформації
Прийоми і методи роботи зі звуковою інформацією прийшли в ОТ пізніше за інші. До того ж, на відміну від числових, текстових і графічних даних, у звукозаписів не було настільки ж тривалої і перевіреної історії кодування. В результаті методи кодування звукової інформації
17
далекі від стандартизації. Різні компанії розробили і використовують свої корпоративні стандарти.
Але можна виділити два основних напрямки кодування звукової інформації:
-Метод частотної модуляції (FM - Frequency Modulation). Базується на тому, що теоре-
тично будь-який складний звук можна розкласти на послідовність найпростіших гармонійних сигналів різних частот, кожний з який являє собою правильну синусоїду, а отже, може бути описаний числовими параметрами, тобто кодом.
Уприроді звукові сигнали мають неперервний спектр, тобто є аналоговими. Їхнє розкладання в гармонійні ряди і представлення у вигляді дискретних цифрових сигналів виконують спеціальні пристрої — аналогово-цифрові перетворювачі (АЦП). Зворотне перетворення для відтворення звуку, закодованого числовим кодом, виконують цифроаналогові перетворювачі ЦАП). При таких перетвореннях неминучі втрати інформації, пов'язані з методом кодування, тому якість звукозапису зазвичай виходить не цілком задовільною і відповідає якості звучання найпростішихелектромузичних інструментів з забарвленням, характерним для електронної музики.
Утой же час даний метод кодування забезпечує дуже компактний код, і тому він знайшов застосування ще в ті роки, коли ресурси засобів ОТ були недостатні.
-Метод таблично-хвильового синтезу (WT - Wave Table). Базується на використанні зра-
зків звуків для різних музичних інструментів, що зберігаються у заздалегідь підготовлених спеціальних таблицях. Такі зразки називають семплами. Числові коди семплів виражають особливості звуку: тип інструменту, номер його моделі, висоту тону, тривалість і інтенсивність звуку, динаміку його зміни, деякі параметри середовища, у якому відбувається звучання, а також інші параметри,що характеризують особливості звуку.
Оскільки як зразки використовуються «реальні» звуки, то якість звуку, отриманого в результаті синтезу, виходить дуже високою і наближається до якості звучання реальних музичних інструментів..
18