Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_informatika.docx
Скачиваний:
0
Добавлен:
26.09.2019
Размер:
456.95 Кб
Скачать

19) Представление данных в пк

Целые числа. Как мы уже знаем, этот тип информации является дискретным и преобразуется для хранения в компьютере довольно просто: достаточно перевести число в двоичную систему счисления. Некоторые особенности будет иметь кодирование целых отрицательных чисел, но мы их рассмотрим в вопросе, связанном с представлением числовой информации.

Вещественные числа. В отличие от целых, вещественные числа являются непрерывными. Следствием из этого является возможность дальнейшего деления любого сколь угодно малого числа, что приводит, вообще говоря, к бесконечному числу разрядов в изображении числа (вспомните 1/3!). Для того, чтобы в ЭВМ как-то представить числа в виде конечного набора двоичных цифр, приходится ограничиваться определенной точностью и младшие разряды просто игнорировать. Отсюда могут возникать некоторые принципиальные проблемы, например, при сравнении двух вещественных значений на равенство. Хорошо известен, например, следующий "счетный" эффект. Возьмем отрезок от 0 до 1 и разделим его на N равных частей, например, на 1000; тогда величина каждой части h=1/N. Выполним по отрезку ровно N шагов, вычисляя каждый раз значение аргумента по формуле X=X+h. По идее, последнее значение X=Nh должно равняться единице, однако на практике точного равенства, как правило, не будет, а значение X будет чуть-чуть меньше. Учтите на будущее этот парадокс и всячески старайтесь избегать сравнения вещественных чисел на равенство.

Символы. Это еще одна дискретная величина, поскольку компьютер оперирует с определенным ограниченным набором символов. Такой набор вполне можно назвать алфавитом машины, а в алфавите все символы имеют свои фиксированные позиции. Отсюда основная идея хранения символов в памяти ЭВМ состоит в замене каждого из них номером в алфавите, т.е. числом.

Помимо такого очевидного достоинства, как компактность хранения, замена символа его номером имеет и определенные недостатки. В частности, текст может быть правильно воспроизведен на другом компьютере только в том случае, если алфавиты обоих компьютеров совпадают. И если для латинских букв, на которые существует единый стандарт, это совсем не жесткое требование, то с русскими текстами дело обстоит заметно хуже. Достаточно сказать, что даже в пределах одного компьютера кодировка русских букв в операционных системах MS-DOS и Windows различна. Несколько утешает тот факт, что задача перекодировки текста является очень простой, и, если правильно указать исходную и требуемую кодировку, прекрасно решается автоматически.

При выводе символа компьютер по номеру определяет, как его надо изобразить на экране или на бумаге. Раньше для каждого символа хранилась его растровая картинка, т.е. некоторая матрица из черных и белых точек, окрашенных в соответствии с начертанием символа. Учитывая, что размеры всех символов были одинаковыми, ориентироваться в такой таблице (ее было принято по научному называть знакогенератором) компьютеру было нетрудно. Главным недостатком подобного метода вывода текста было то, что начертания букв и их размер оказывались жестко зафиксированными. На первых порах с этим мирились, но постоянное увеличение обработки текстов на компьютере потребовало новых принципов организации шрифтов. На современном этапе для каждого символа хранится не его начертание, а своеобразная программа, его порождающая (векторный способ создания изображений). Геометрические параметры этих "программ" могут легко изменяться, что обеспечивает быстрое и удобное масштабирование шрифтов.

Графика. Как известно каждому пользователю компьютера, любое графическое изображение состоит из отдельных точек, называемых пикселями. Отсюда становится понятным, что сохранить изображение фактически означает сохранить цвета его пикселей. Если принять конечное (ограниченное) число цветов, то информация немедленно становится дискретной и решение задачи сохранения графики становится похожей на только что рассмотренную задачу сохранения текста. Нужно каким-либо образом пронумеровать все цвета (создать своеобразный "алфавит цветов"), после чего достаточно просто сохранять номера цветов. В отличие от алфавита символов, который является стандартным, с цветами это не совсем так. Например, в фотографии летнего леса много оттенков зеленого цвета, а для кадра с облаками характерны белые и голубые тона. Отсюда следует, что набор используемых цветов (часто его называют палитрой) для этих изображений будет абсолютно разным. Поэтому некоторые графические форматы сохраняют палитру вместе с изображением, что позволяет существенно уменьшить количество цветов и, следовательно, размер файла.

Хочется подчеркнуть еще один момент. Для того, чтобы естественное изображение (например, рисунок художника на холсте) с непрерывным распределением цветов стало доступным компьютеру узором пикселей, необходимо использовать какое-либо специальное устройство, которое способно такое преобразование осуществить. Всем, конечно, известны примеры таких устройств: речь идет о сканере или цифровой камере. Однако не все задумываются над тем, что все эти устройства производят процесс дискретизации графического изображения, т.е. аналого-цифровое преобразование.

Как и для символов, помимо описанного выше "поточечного" (растрового) хранения изображения, существует еще и векторный метод. Для него сохраняется не полная матрица пикселей, а программа его рисования. Кодирование этой программы существенным образом зависит от программного обеспечения. По своим принципам оно гораздо ближе к кодированию программ, чем данных. Подчеркнем, что векторные изображения, как правило, создаются именно на компьютере, а задача векторизации естественного изображения очень сложна и дает не слишком хорошие результаты.

Звук. Звуковая информация также является величиной непрерывной, и, следовательно, для ввода в ЭВМ нуждается в дискретизации. Причем дискретизация должна производится как по времени, так и по величине интенсивности звука. Первый процесс означает, что замеры интенсивности должны производится не непрерывно, а через определенные промежутки времени, а второй – что интенсивность звука, которая в природе может принимать какие угодно значения, должна быть "подтянута" ("округлена") к ближайшему из стандартного набора фиксированных значений. При такой процедуре мы снова получаем последовательность целых чисел, которые и сохраняются в памяти ЭВМ. Таким образом, и в случае звука информацию удается описать определенным образом сформированной последовательностью чисел, что автоматически решает проблему кодирования.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]