9.1. представлення даних в комп'ютері
ª Подання числової інформації.
ª Уявлення символьної інформації.
ª Подання графічної інформації.
ª Подання звуку.
За своїм призначенням комп'ютер - універсальний, програмно-керований автоматичний пристрій для роботи з інформацією. З властивості універсальності випливає те, що комп'ютер здійснює всі три основних типи інформаційних процесів: зберігання, передачу і обробку інформації. Сучасні комп'ютери працюють з усіма видами інформації: числової, символьної, графічної, звукової. Інформація, що зберігається в пам'яті комп'ютера і призначена для обробки, називається даними.
Як вже говорилося в попередньому розділі, для подання всіх видів даних в пам'яті комп'ютера використовується двійковий алфавіт. Однак інтерпретація послідовностей двійкових цифр для кожного виду даних своя. Ще раз підкреслимо, що мова йде про внутрішньому поданні даних, в той час як зовнішнє уявлення на пристроях введення-виведення має звичну для людини форму.
Подання числової інформації. Історично першим видом даних, з яким стали працювати комп'ютери, були числа. Перші ЕОМ використовувалися виключно для математичних розрахунків. Відповідно до принципів Джона фон Неймана, ЕОМ виконує розрахунки в двійковій системі числення. Питання про внутрішній (машинному) поданні чисел розглянемо трохи докладніше, ніж це робиться в підручниках.
Структурні одиниці пам'яті комп'ютера - біт, байт і машинне слово. Причому поняття біта і байта універсальні і не залежать від моделі комп'ютера, а розмір машинного слова залежить від типу процесора ЕОМ. Якщо машинне слово для даного комп'ютера дорівнює одному байту, то таку машину називають 8-розрядної (8 біт); якщо машинне слово складається з 2 байтів, то це 16-розрядний комп'ютер; 4-байтовое слово у 32-розрядних ЕОМ. Обговорення питання про те, як представляються числа в пам'яті ЕОМ, будемо вести на прикладі 16-розрядної машини.
Числа в пам'яті ЕОМ зберігаються в двох форматах: в форматі з фіксованою точкою і в форматі з плаваючою точкою. Під точкою тут і надалі мається на увазі знак поділу цілої і дробової частини числа. Формат з фіксованою точкою використовується для зберігання в пам'яті цілих чисел. У цьому випадку число займає одне машинне слово пам'яті (16 біт). Щоб отримати внутрішнє уявлення цілого позитивного числа Л ^ в формі з фіксованою точкою потрібно:
1) перевести число N в двійкову систему числення;
2) отриманий результат доповнити зліва незначущими нулями до 16 розрядів.
Наприклад, N = 160710 = 110010001112. Внутрішнє подання цього числа в машинному слові буде наступним:
У стислій шестнадцатеричной формі цей код запишеться так: 0647.
Двійкові розряди в машинному слові нумеруються від 0 до 15 справа наліво. Старший 15-й розряд в машинному поданні будь-якого позитивного числа дорівнює нулю. Тому максимальне ціле число в такій формі одно:
0111 1111 1111 11112 = 7FFF16 = (215- 1) = 3276710.
Для запису внутрішнього уявлення цілого негативного числа (-N) потрібно:
1) отримати внутрішнє уявлення позитивного числа N;
2) отримати зворотний код цього числа заміною 0 на 1 і 1 на 0;
3) до отриманого числа додати 1.
Визначимо за цими правилами внутрішнє уявлення числа 160710.
1) 0000 0110 0100 0111
2) 1111 1001 1011 1000
1111 1001 1011 1001 - результат
Шістнадцяткова форма результату: F9B9.
Описаний спосіб представлення цілого негативного числа називають додатковим кодом. Старший розряд в поданні будь-якого негативного числа дорівнює 1. Отже, він вказує на знак числа і тому називається знаковим розрядом.
Застосування додаткового коду для внутрішнього представлення негативних чисел дає можливість замінити операцію віднімання операцією додавання з негативним числом: N - M = N + (М). Очевидно, має виконуватися рівність: N + (-N) = 0. Виконаємо таке додавання для отриманих вище чисел 1607 і -1607:
0000 0110 0100 0111 1607
1111 1001 1011 1001 -1607
1 0000 0000 0000 0000 0
Таким чином, одиниця в старшому розряді, що отримується при додаванні, виходить за кордон розрядної сітки машинного слова і зникає, а в пам'яті залишається нуль.
Вихід довічних знаків за кордон осередки пам'яті, відведеної під число, називається переповненням. Для дійсних чисел така ситуація є аварійною. Процесор її виявляє і припиняє роботу (переривання по переповнення). Однак при обчисленнях з цілими числами переповнення не фіксується як аварійна ситуації і переривання не відбувається.
Двійкове 16-розрядне число 1000 0000 0000 0000 = 215 є «негативним самому собі»:
1000 0000 0000 0000 215
0111 1111 1111 1111
1000 0000 0000 0000 -215
Цей код використовується для представлення значення -215 = -32768. Отже, діапазон представлення цілих чисел в 16-розрядному машинному слові:
У загальному випадку для k-розрядного машинного слова цей діапазон наступний:
У різних типах ЕОМ використовуються різні варіанти організації формату з плаваючою точкою. Ось приклад одного з варіантів представлення дійсного числа в 4-байтовой осередку пам'яті:
Формат з плаваючою точкою використовується як для подання цілочисельних значень, так і значень з дробової частиною. У математиці такі числа називають дійсними, в програмуванні - речовими.
Формат з плаваючою точкою передбачає подання дійсного числа R в формі твору мантиси (т) на підставу системи числення (л) в деякій цілій степені, яку називають порядком (р):
Порядок вказує, на скільки позицій і в якому напрямку повинна зміститися ( «переплисти») точка в мантисі. Наприклад, 25,32410 = 0,25324'102. Однак справедливі і наступні рівності:
Отже, уявлення числа в формі з плаваючою крапкою неоднозначно. Щоб не було неоднозначності, в ЕОМ використовують нормалізовану форму з плаваючою точкою. Мантиса в нормалізованому формі повинна задовольняти умові:
Для розглянутого числа нормализованной формою буде: 0,25324 хЮ2.
У пам'яті ЕОМ мантиса представляється як ціле число, що містить тільки її значущі цифри (нуль цілих і кома не зберігаються). Отже, завдання внутрішнього уявлення дійсного числа зводиться до подання пари цілих чисел: мантиси (т) і порядку (р). У розглянутому нами прикладі т = 25324, р = 2.
У різних типах ЕОМ використовуються різні варіанти організації формату з плаваючою точкою. Ось приклад одного з варіантів представлення дійсного числа в 4-байтовой яч6ейке пам'яті:
1-й байт 2-й байт 3-й байт 4-й байт
У старшому бите 1-го байта зберігається знак числа: 0 - плюс, 1 - мінус; 7 залишилися бітів 1-го байта містять машинний порядок; в наступних 3-х байтах зберігаються значущі цифри мантиси.
В рамках базового курсу інформатики питання про подання дійсних чисел може розглядатися лише на поглибленому рівні. Теоретичний матеріал і практичні завдання на цю тему є в посібнику [6].
Перше завдання - познайомити учнів з символьним алфавітом комп'ютера. Вони повинні знати, що
- алфавіт комп'ютера включає в себе 256 символів;
- кожен символ займає 1 байт пам'яті.
Далі слід ввести поняття про таблиці кодування. Таблиця кодування - це стандарт, який ставить у відповідність кожному символу алфавіту свій порядковий номер. Найменший номер - 0, найбільший - 255. Двійковий код символу - це його порядковий номер у двійковій системі числення. Таким чином, таблиця кодування встановлює зв'язок між зовнішнім символьним алфавітом комп'ютера і внутрішнім двійковим поданням.
Міжнародним стандартом для персональних комп'ютерів стала таблиця ASCII. На практиці можна зустрітися і з іншою таблицею - ЯКІ-8 (Код Обміну Інформацією), яка використовується в глобальних комп'ютерних мережах, на ЕОМ, що працюють під управлінням операційної системи Unix, а також на комп'ютерах типу PDP. До них, зокрема, відноситься вітчизняний шкільний комп'ютер Електроніка-УКНЦ.
Від учнів не потрібно вимагати запам'ятовування кодів символів. Однак деякі принципи організації кодових таблиць вони повинні знати. Слід розглянути разом з учнями таблицю коду ASCII, наведену в ряді підручників і в довідниках. Вона ділиться на дві частини. Міжнародним стандартом є лише перша половина таблиці, тобто символи з номерами від 0 до 127. Сюди входять малі та великі літери латинського алфавіту, десяткові цифри, розділові знаки, всілякі дужки, комерційні та інші символи. Символи з номерами від 0 до 31 прийнято називати керуючими. Їх функція - управління процесом виведення тексту на екран або друк, подача звукового сигналу, розмітка тексту і т.п. Символ номер 32 - пробіл, тобто порожня позиція в тексті. Всі інші відображаються певними знаками. Важливо звернути увагу учнів на дотримання лексикографічного порядку в розташуванні букв латинського алфавіту, а також цифр. На цьому принципі заснована можливість сортування символьної інформації, з якої учні вперше зустрінуться, працюючи з базами даних.
Друга половина кодової таблиці може мати різні варіанти. В першу чергу, вона використовується для розміщення національних алфавітів, відмінних від латинського. Оскільки для кодування російського алфавіту - кирилиці, застосовуються різні варіанти таблиць, то часто виникають проблеми з перенесенням російського тексту з одного комп'ютера на інший, з однієї програмної системи в іншу. Можна повідомити учням, що таблиця кодування символів 128 - 255 називається кодовою сторінкою і кожен її варіант має свій номер. Так, наприклад, в MS-DOS використовується кодова сторінка номер 866, а в Windows - номер 1251.
В якості додаткової інформації можна розповісти про те, що проблема стандартизації символьного кодування вирішується введенням нового міжнародного стандарту, який називається Unicode. Це 16-розрядна кодування, тобто в ній на кожен символ відводиться 2 байти пам'яті. Звичайно, при цьому обсяг займаної пам'яті збільшується в два рази. Але зате така кодова таблиця допускає включення до 65 536 символів. Ясно, що в неї можна внести всілякі національні алфавіти.
Подання графічної інформації. Існують два підходи до вирішення проблеми подання зображення на комп'ютері: растровий і векторний. Суть обох підходів в декомпозиції, тобто розбитті зображення на частини, які легко описати.
Необхідно розкрити перед учнями зв'язок між кодом кольору і складом суміші базових квітів. Слід почати з розгляду варіанта восьмицветного палітри. У цьому випадку використовується трехбітовий код і кожен біт такого коду позначає наявність (1) або відсутність (0) відповідного базового кольору. У наступній таблиці наведено коди восьмицветного палітри (табл. 9.1).
Двійковий код восьмицветного палітри
Біти в такому коді розподілені за принципом «КЗС», т. Е. Перший біт відповідає за червону складову, другий - за зелену, третій - за синю. По цій темі учні повинні вміти відповідати на питання такого типу:
- Змішуванням яких кольорів виходить рожевий колір?
- Відомо, що коричневий колір виходить змішуванням червоного і зеленого кольорів. Які символи ви бачите у коричневого кольору?
При програмуванні кольорових зображень прийнято кожному кольору ставити у відповідність десятковий номер. Отримати номер кольору дуже просто. Для цього його двійковий код, розглядаючи як ціле двійкове число, слід перевести в десяткову систему числення. Тоді, згідно з табл. 9.1, номер чорного кольору - 0, синього - 1, зеленого - 2 і т.д. Білий колір має номер 7. Корисними, з точки зору закріплення знань двійковій системи числення, є питання такого роду:
- Чи не дивлячись в таблицю, назвати десятковий номер червоного кольору.
Тільки після того, як учні розібралися з 8-кольоровий палітрою, можна переходити до розгляду кодування більшого числа квітів. Таблиця кодів 16-колірної гами приведена в підручнику [14]. Це ті ж вісім кольорів, але мають два рівня яскравості. Керує яскравістю додатковий четвертий біт - біт інтенсивності. У структурі 16-кольорового коду «ІКЗС» І - біт інтенсивності. Наприклад, якщо в 8-кольоровій палітрі код 100 означає червоний колір, то в 16-кольоровій палітрі: 0100 - червоний, 1100 - яскраво-червоний колір; ВОНО - коричневий, 1110 - яскраво-коричневий (жовтий).
При векторному підході зображення розглядається як сукупність простих елементів: прямих ліній, дуг, кіл, еліпсів, прямокутників, закрасок тощо. Які називаються графічними примітивами. Графічна інформація - це дані, однозначно визначають всі графічні примітиви, складові малюнок.
Положення і форма графічних примітивів задаються в системі графічних координат, пов'язаних з екраном. Зазвичай початок координат розташовано у верхньому лівому кутку екрана. Сітка пікселів збігається з координатної сіткою. Горизонтальна вісь X спрямована зліва направо; вертикальна вісь Y- зверху вниз.
Зв'язок між розрядністю коду кольору - b і кількістю квітів - ^ (розміром палітри) виражається формулою: К = 2Ь. У літературі з комп'ютерної графіки величину b прийнято називати бітової глибиною кольору. Так звана природна палітра кольорів виходить при b = 24. Для такої бітової глибини палітра включає більше 16 мільйонів квітів.
При векторному підході зображення розглядається як сукупність простих елементів: прямих ліній, дуг, кіл, еліпсів, прямокутників, закрасок і т.д. які називаються графічними примітивами. Графічна інформація - це дані, однозначно визначають всі графічні примітиви, складові малюнок.
Положення і форма графічних примітивів задаються в системі графічних координат, пов'язаних з екраном. Зазвичай початок координат розташовано у верхньому лівому кутку екрана. Сітка пікселів збігається з координатної сіткою. Горизонтальна вісь Х спрямована зліва направо; вертикальна вісь Y - зверху вниз.
Подання звуку. Сучасні комп'ютери «вміють» зберігати і відтворювати звук (мова, музику та ін.). Звук, як і будь-яка інша інформація, представляється в пам'яті ЕОМ у формі двійкового коду.
В існуючих підручниках з базового курсу інформатики тема представлення звуку в комп'ютері практично не висвітлена (цей матеріал є в деяких посібниках для профільних курсів). У той же час в вимоги обов'язкового мінімуму стали включатися питання технології мультимедіа. Як відомо, звук є обов'язковою компонентою мультимедіа-продуктів. Тому подальший розвиток базового курсу зажадає включення в нього теми уявлення звуку. Коротко обговоримо це питання.
Основний принцип кодування звуку, як і кодування зображення, виражається словом «дискретизація».
При кодуванні зображення дискретизація - це розбиття малюнка на кінцеве число одноколірних елементів - пікселів. І чим менше ці елементи, тим менше наш зір зауважує дискретність малюнка.
Фізична природа звуку - це коливання в певному діапазоні частот, що передаються звуковою хвилею через повітря (або іншу пружну середу). Процес перетворення звукових хвиль в двійковий код в пам'яті комп'ютера:
Аудиоадаптер (звукова плата) - спеціальний пристрій, що підключається до комп'ютера, призначене для перетворення електричних коливань звукової частоти в числовий двійкового коду при введенні звуку і для зворотного перетворення (з числового коду в електричні коливання) при відтворенні звуку.
В процесі запису звуку аудиоадаптер з певним періодом вимірює амплітуду електричного струму і заносить в регістр двійкового коду отриманої величини. Потім отриманий код з регістра переписується в оперативну пам'ять комп'ютера. Якість комп'ютерного звуку визначається характеристиками аудиоадаптера: частотою дискретизації і розрядністю.
Частота дискретизації - це кількість вимірювань вхідного сигналу за 1 секунду. Частота вимірюється в герцах (Гц). Одне вимір за 1 секунду відповідає частоті 1 Гц. 1000 вимірювань за 1 секунду - 1 кілогерц (кГц). Характерні частоти дискретизації Аудиоадаптер: 11 кГц, 22 кГц, 44,1 кГц і ін.
Розрядність регістра - число біт в регістрі аудиоадаптера. Розрядність визначає точність вимірювання вхідного сигналу. Чим більше розрядність, тим менше похибка кожного окремого перетворення величини електричного сигналу в число і назад. Якщо розрядність дорівнює 8 (16), то при вимірюванні вхідного сигналу може бути отримано 2s = 256 (216 = 65536) різних значень. Очевидно, 16-розрядний аудиоадаптер точніше кодує і відтворює звук, ніж 8-розрядний.
Звуковий файл - файл, який зберігає звукову інформацію в числовий двійковій формі. Як правило, інформація в звукових файлах піддається стисненню.
Приклад. Визначити розмір (в байтах) цифрового аудіофайлу, час звучання якого становить 10 секунд при частоті дискретизації 22,05 кГц і дозволі 8 біт. Файл стиску не схильний до.
Рішення. Формула для розрахунку розміру (в байтах) цифрового аудіофайлу (монофонічне звучання): (частота дискретизації в Гц) х (час запису в сек) х (дозвіл в бітах) / 8.
Таким чином, розмір файлу обчислюється так: 22050'10'8 / 8 = 220500 байт.