2.1. Информация аналоговая и цифровая
Человек так устроен, что воспринимает информацию с помощью органов чувств. Свет, звук и тепло - это энергетические сигналы, а вкус и запах - это результат воздействия химических соединений, в основе которого тоже энергетическая природа. Человек испытывает энергетические воздействия непрерывно и может никогда не встретиться с одной и той же их комбинацией дважды. Мы не найдём двух одинаковых зелёных листьев на одном дереве и не услышим двух абсолютно одинаковых звуков - это информация аналоговая. Если же разным цветам дать номера, а разным звукам - ноты, то аналоговую информацию можно превратить в цифровую.
Музыка, когда мы её слышим, несет аналоговую информацию, но стоит только записать её нотами, как она становится цифровой. Мы легко различим разницу в одной и той же ноте, если исполнить её на фортепиано и на флейте, хотя на бумаге эти ноты выглядят одинаково.
Разница между аналоговой информацией прежде всего в том, что аналоговая информация непрерывна, а цифровая - дискретна. Примеры аналоговой информации известны нам из школьного курса математики. Графики непрерывных функций выражают аналоговую информацию. На рис.1 показан график функции y=x . Это график непрерывной функции.
Тот же самый график (рис. 2) после преобразования в цифровую форму выглядит иначе - немного грубее.
П
Рис. 1
огрешность, которая возникает при таком преобразовании, называется погрешностью оцифровки. Преобразование можно сделать менее грубым, если столбики диаграммы поставить чаще и уменьшить дискретность (рис. 3).
Рис. 2
Рис. 3
Чем меньше дискретность, тем ближе цифровая информация к аналоговой и меньше погрешность оцифровки. Чем ближе цифровая информация приближается по качеству к аналоговой, тем больше вычислений приходится выполнять компьютеру, а значит, тем больше информации ему надо хранить и обрабатывать.
2.2. Устройства аналоговые и цифровые
Органы чувств человека так устроены, что он способен принимать, хранить и обрабатывать аналоговую информацию. Многие устройства, созданные человеком, тоже работают с аналоговой информацией.
Телевизор - это аналоговое устройство. Внутри телевизора есть кинескоп. Луч кинескопа непрерывно перемещается по экрану. Чем сильнее луч, тем ярче светится точка, в которую он попадает. Изменение свечения точек происходит плавно и непрерывно.
Монитор компьютера тоже похож на телевизор, но это устройство цифровое. В нём яркость луча изменяется не плавно, а скачком (дискретно). Луч либо есть, либо его нет. Если он есть, мы видим яркую точку (белую или цветную). Если луча нет, мы видим черную точку. Поэтому изображения на экране монитора получаются более четкими, чем на экране телевизора.
К цифровым устройствам относятся персональные компьютеры - они работают с информацией, представленной в цифровой форме. Цифровыми также являются музыкальные проигрыватели лазерных компакт-дисков, поэтому музыкальные компакт-диски можно воспроизводить на компьютере.
Недавно началось создание цифровой телефонной связи, а в ближайшие годы ожидается и появление цифрового телевидения.
2.3. Понятие кодирования информации
Для того чтобы информацию сохранить, её надо закодировать. Любая информация всегда хранится в виде кодов. Когда мы что-то пишем в тетради, мы на самом деле кодируем информацию с помощью специальных символов. Эти символы всем знакомы - они называются буквами. И система такого кодирования тоже хорошо известна - это обыкновенная азбука.
Можно кодировать и звуки. С одной из таких систем кодирования вы тоже хорошо знакомы: мелодию можно записать с помощью нот.
Хранить можно не только текстовую и звуковую информацию. В виде кодов хранятся и изображения. Если посмотреть на рисунок с помощью увеличительного стекла, то видно, что он состоит из точек - это так называемый растр. Координаты каждой точки можно запомнить в виде числа. Цвет каждой точки тоже можно запомнить в виде числа. Эти числа могут храниться в памяти компьютера и передаваться на любые расстояния. По ним компьютерные программы способны изобразить рисунок на экране или напечатать на принтере. Изображение можно сделать больше или меньше, темнее или светлее, его можно повернуть, наклонить, растянуть. Мы говорим о том, что на компьютере обрабатывается изображение, но на самом деле компьютерные программы изменяют числа, которыми отдельные точки изображения представлены в памяти компьютера.
2.3.1. Хранение цифровой информации
Вы уже знаете, что компьютеры предпочитают работать с цифровой информацией, а не с аналоговой. Так происходит потому, что цифровую информацию очень удобно кодировать, а значит, её удобно хранить и обрабатывать. Компьютер работает по принципу "разделяй и властвуй". Для кодирования информации компьютер применяет нули и единицы - такой код называется двоичным. По-английски двоичный знак звучит как binary digit. Сокращенно получается bit (бит).
Бит это наименьшая единица информации, которая выражает логическое значение Да или Нет и обозначается двоичным числом 1 или 0.
Если какая-то информация представлена в цифровом виде, то компьютер легко превращает числа, которыми она закодирована, в последовательности нулей и единиц, а дальше уже работает с ними. Вы тоже можете преобразовать любое число в двоичную форму. Делая это следующим образом:
Берем, например, число 29. Поскольку это число нечетное, отнимаем от него единицу, записываем её отдельно, а число делим пополам. Получилось 14.
Число 14 - четное. Отнимать от него единицу не нужно, поэтому слева от "запомненной" единицы запишем 0. Число делим пополам, получаем 7.
Число 7 - опять нечетное. Отнимаем от него единицу, записываем её отдельно и делим число пополам. Получается 3.
Число 3 - нечетное. Отнимаем единицу, записываем её отдельно, и результат делим пополам - получаем 1.
Последнюю единицу уже не делим, а просто записываем слева от полученного результата.
Смотрим на результат. У нас получилось двоичное число 11101 - это и есть двоичный код числа 29.
Рисунок 4.
Как видите, преобразовать число в двоичный код совсем не трудно.
Бит - очень маленькая единица информации. Работать с каждым битом отдельно, конечно, можно, но это малопроизводительно. Обработкой информации в компьютере занимается специальная микросхема, которая называется процессор. Эта микросхема устроена так, что может обрабатывать группу битов одновременно (параллельно).
Один из первых персональных компьютеров (Altair, 1974 г.) имел восьмиразрядный процессор, то есть он мог параллельно обрабатывать восемь битов информации. Это в восемь раз быстрее, чем работать с каждым битом отдельно, поэтому в вычислительной технике появилась новая единица измерения информации - байт. Байт - это группа из восьми битов.
Мы знаем, что один бит может хранить в себе один двоичный знак - 0 или 1. Это наименьшая единица представления информации - простой ответ на вопрос Да или Нет. А что может хранить байт?
На первый взгляд кажется, что раз в байте восемь битов, то и информации он может хранить в восемь раз больше, чем один бит, но это не так. Дело в том, что в байте важно не только, включен бит или выключен, но и то, в каком месте стоят включенные биты. Байты 0000 0001, 0000 1000 и 1000 0000 - не одинаковые, а разные.
Если учесть, что важны не только нули и единицы, но и позиции, в которых они стоят, то с помощью одного байта можно выразить 256 различных единиц информации (oт 0 до 255).
Всегда ли байты состояли из восьми битов? Нет, не всегда. Еще в 60-е годы, когда не было персональных компьютеров и все вычисления проводились на больших электронно-вычислительных машинах (ЭВМ), байты могли быть какими угодно. Наиболее широко были распространены ЭВМ, у которых байт состоял из шести битов, но были и такие, у которых он состоял из четырех и даже из семи битов.
Восьмибитный байт появился достаточно поздно (в начале семидесятых годов), но быстро завоевал популярность. С тех пор понятие о байте, как о группе из восьми битов, является общепризнанным.
1 Килобайт = 1024 байт = 2 байт
1 Мегабайт = 1024 Кбайт = 2 байт
1 Гигабайт = 1024 Мбайт = 2 байт
2.3.2. Кодирование текстовой информации
В русском языке 33 буквы (символа) - для их кодирования достаточно 33 различных байтов. Если мы хотим различить прописные (заглавные) и строчные буквы, то потребуется 66 байтов. Для строчных и прописных букв английского языка хватит еще 52 символа - получается 118. Добавим сюда цифры (от 0 до 9), все возможные знаки препинания: точку, запятую, тире, восклицательный и вопросительный знаки. Добавим скобки: круглые, квадратные и фигурные, а также знаки математических операций: +, -, =, /, *. Добавим специальные символы, например такие, как: %, #, &, @, - мы видим, что все их можно выразить восемью битами, и при этом еще останутся свободные коды, которые можно использовать для других целей.
Дело осталось за малым: надо все людям мира договориться о том, каким кодом (от 0 до 255) должен кодироваться каждый символ. Если, например, все люди будут знать, что код 33 означает восклицательный знак, а код 63 - знак вопросительный, то текст, набранный на одном компьютере, всегда можно будет прочитать и распечатать на другом компьютере.
Такая всеобщая договоренность об одинаковом использовании чего-либо называется стандартом. Стандарт устанавливает таблицу, в которой записано, каким кодом должен кодироваться каждый символ. Такая таблица называется таблицей кодов. В этой таблице должно быть 256 строк, в которых записывается, какой байт какому соответствует.
Но здесь-то и начались проблемы. Дело в том, что символы, которые хороши для одной страны, не подходят для другой. В Греции используются одни буквы, в Турции - другие. То, что подходит для Америки, не годится для России, а то, что подходит для России, не подходит для Германии.
Поэтому было принято следующее решение. Таблицу кодов разделили пополам. Первые 128 кодов (с 0 до 127) должны быть стандартными и обязательными для всех стран и всех компьютеров, а во второй половине (с кода 128 до кода 255) каждая страна может делать все, что ей угодно, и создавать в этой половине свой стандарт - национальный.
Первую (международную) половину таблицы кодов называют таблицей ASCII - её ввел американский институт стандартизации ANSI. В этой таблице размещаются прописные и строчные буквы английского алфавита, символы чисел от 0 до 9, все знаки препинания, символы арифметических операций и некоторые другие специальные коды.
Рисунок 5. Таблица кодов ASCII
За вторую половину кодовой таблицы (коды от 128 до 255) стандарт ASCII не отвечает. Разные страны могут создавать здесь свои таблицы.
2.3.3. Кодирование цветовой информации
Одним байтом можно закодировать 256 различных цветов. В принципе, этого достаточно для рисованных изображений типа тех, что мы видим в мультфильмах, но для полноцветных изображений живой природы - недостаточно. Человеческий глаз - не самый совершенный инструмент, но и он может различать десятки миллионов цветовых оттенков.
А что, если на кодирование цвета одной точки отдать не один байт, а два, то есть, не 8 битов, а 16. Мы уже знаем, что добавление каждого бита увеличивает в два раза количество кодируемых значений. Добавление восьми битов восемь раз удвоит это количество, то есть увеличит его в 256 раз (2*2*2*2*2*2*2*2 = 256). Двумя байтами можно закодировать 256 * 256 = 65536 различных цветов. Это уже лучше и похоже на то, что мы видим на фотографиях и на картинках в журналах, но всё равно хуже, чем в живой природе.
Если для кодирования цвета одной точки использовать 3 байта (24 бита), то количество возможных цветов увеличивается еще в 256 раз и достигнет 16,5 миллионов. Этот режим позволяет хранить, обрабатывать и передавать изображения, не уступающие по качеству наблюдаемым в живой природе.
Возможно, вы знаете, что любой цвет можно представить в виде комбинации трех основных цветов: красного, зеленого и синего (их называют цветовыми составляющими). Если мы кодируем цвет точки с помощью трех байтов, то первый байт выделяется красной составляющей, второй - зеленой, а третий - синей. Чем больше значение байта цветовой составляющей, тем ярче этот цвет.
Рис. 6.
2.3.4. Кодирование графической информации
Итак, мы уже умеем с помощью чисел кодировать цвет одной точки. На это необходимы один, два или три байта, в зависимости от того, сколько цветов мы хотим передать. А как закодировать целый рисунок?
Решение приходит само собой - надо рисунок разбить на точки. Чем больше будет точек и чем мельче они будут, тем точнее будет передача рисунка. А когда рисунок разбит на точки, то можно начать с его левого верхнего угла и, двигаясь по строкам слева направо, кодировать цвет каждой точки.
Если раскодировать байты по одному слева направо, то никогда не узнаешь, где кончается одна строка и начинается другая. Это говорит о том, что нам чего-то не хватает. Значит, мы что-то важное упустили из виду. Если бы перед группой байтов приписать еще небольшой заголовок, из которого было бы ясно, как эти байты раскодировать, то всё стало бы на свои места. Этот заголовок может быть, например таким: {8 * 8}. По нему можно догадаться, что рисунок должен состоять из восьми строк по восемь точек в каждой строке.
Заголовок можно сделать еще подробнее, например, так: {8 * 8 * 3} - тогда можно догадаться, что этот рисунок цветной, в котором на кодирование цвета каждой точки использовано три байта.
Заголовок помогает решить многие вопросы, но возникает новая проблема. Как компьютер разберется, где заголовок, а где сама информация? Ведь заголовок тоже должен быть записан в виде байтов. Сумеет ли компьютер отличить байты заголовка от байтов информации? Далее мы с этим разберемся.
2.3.5. Понятие формата информации
Идея представить любую информацию в виде чисел и закодировать их байтами очень рациональна. Компьютеру удобно работать когда тексты, звуки, рисунки и видеофильмы представлены в виде байтов со значениями от 0 до 255. Непонятно только, как он отличит, где и что записано.
Если компьютер не знает, что выражает каждая группа байтов, он не сможет ничего с ней сделать. Он должен различать, где байтами закодирован текст, а где музыка и рисунки. Тексты всегда должны оставаться текстами, числа - числами, даты - датами, рисунки - рисунками, музыка - музыкой, а деньги, хранящиеся в банковском компьютере в виде тех же самых байтов, должны оставаться деньгами и не превращаться в звук или музыку.
Решение этой проблемы опять-таки связано с заголовком. Если бы перед группой байтов стоял специальный заголовок, то компьютер точно знал бы, что эти байты обозначают. А чтобы компьютер знал, где кончаются байты заголовка и начинаются байты данных, заголовок и данные должны иметь строго определенный формат. Для разных видов информации используются разные форматы.
|