Підручник методика викладання інформатики - глава 9

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 = (2151) = 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 байт.

Схожі статті