При этом надо помнить, что независимо от размера области памяти, которую машина может выделить для хранения числового значения, все равно будут появляться слишком большие целые числа или слишком маленькие дроби, не помещающиеся в эту область. В связи с этим всегда существует возможность ошибок, таких как переполнение (число слишком большое) или усечение (дробь слишком маленькая). С ними необходимо бороться, иначе ничего не подозревающий пользователь столкнется с множеством ошибочных данных.
1.
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
1.6.1.
1.6.2.
В компьютерных системах кроме текстовой и числовой информации хранится графическая, звуковая и видеоинформация. Способы представления этих данных находятся только в начале своего развития и, следовательно, не настолько стандартизированы.
Все изображения делят на две категории: растровые (bitmap techniques) и векторные (vector techniques).
Растровое изображение представляет собой набор точек, элементов изображения, которые называются пикселами (pixel). Самое простое представление имеет вид длинной последовательности битов, каждый из которых равен 0 или 1 в зависимости от того, белого или черного цвета пиксел. Цветные изображения отображать немного сложнее, так как необходимо каждый пиксел представлять комбинацией битов, обозначающей его цвет.
Многие внешние устройства компьютера (факсы, видеокамеры и сканеры) конвертируют изображения в растровый формат. Эти устройства кодируют цвет пиксела в виде комбинации трех составляющих: красной, зеленой и синей, соответствующих трем основным цветам. Для представления интенсивности каждого цвета используется один байт, в то время как для представления целого пиксела изображения требуется три байта. Этот подход с использованием трех составляющих цвета используется также в мониторе компьютера, который отображает миллиарды пикселов, каждый из которых состоит из трех компонентов: красного, зеленого и синего, что можно заметить, рассмотрев экран поближе (через увеличительное стекло).
Таким образом, для изображения, состоящего из 1024 рядов, содержащих 1024 пиксела каждый, потребуется такой объём памяти, который превысит емкость обычного гибкого диска.
Изображение в растровом формате имеет один недостаток: размер изображения нельзя произвольно увеличить. Так как, единственный способ увеличения изображения — увеличить размер пикселов. Но это приводит к зернистому изображению — явлению, которое часто наблюдается в цифровых фотоаппаратах.
Векторный формат представления изображений преодолевает эту проблему. Векторное изображение - это набор линий и дуг. Такое описание заставляет само устройство рисовать изображение, а не воспроизводить комбинацию пикселов.
Различные шрифты, в современных принтерах и мониторах, часто кодируются именно таким способом, для того чтобы размер символа сделать более гибким.
Такие шрифты называют масштабируемыми шрифтами. Например, шрифт TrueType (разработанный компаниями Microsoft и Apple Computer) представляет собой описание того, как следует рисовать символы в тексте. Или шрифт PostScript (разработанный корпорацией Adobe Systems), который предоставляет средства для описания символов как графических данных.
Векторный формат распространен в автоматизированном проектировании. Он позволяет создавать трехмерные объекты и управлять их отображением на мониторе.
Однако, векторный формат не обеспечивает высокого фотографического качества изображений, которое доступно в растровом формате. Именно поэтому растровый формат используется в современных цифровых камерах.
Способ кодирования звуковой информации состоит в том, что измеряется амплитуда сигнала через равные промежутки времени и записываются полученные значения. Например, последовательность 0, 1.5, 2.0, 1.8, 2.1, 2.5, 4.0, 3.0, 0 описывает волну звука, амплитуда которой сначала увеличивается, затем немного уменьшается, затем снова повышается и, наконец, падает до 0.
Звуковая волна
0 1.5 2.0 1.8 2.1 2.5 4.0 3.0 0
Амплитуда
Рис. 1.7. Звуковая волна
Такой способ кодирования, в котором частота дискретизации составляет 8000 отсчетов в секунду, используется уже давно в дальней телефонной связи. Голос на одном конце канала кодируется в виде числовых значений, отражающих амплитуду звукового сигнала, восемь тысяч раз в секунду. Эти значения затем передаются по каналам связи и используются для воспроизведения звука на приемном конце канала связи.
Может показаться, что 8000 отсчетов в секунду — это большая частота дискретизации, но для высокой точности воспроизведения музыки эта частота недостаточна. Для получения качественного звучания на современных музыкальных компакт-дисках используется частота дискретизации, равная 44 100 отсчетов в секунду.
Для данных, получаемых при каждом отсчете, отводится 16 битов памяти (или 32 бита для стереозаписей). Таким образом, для хранения одной секунды звучания требуется более миллиона битов.
Для кодирования звуков в музыкальных синтезаторах, компьютерных играх и звуках сопровождающих веб-страницы используется более экономная система кодирования, которая называется цифровым интерфейсом музыкальных инструментов (MIDI — Musical Instrument Digital Interface).
При использовании стандарта MIDI не требуется столько места в памяти, как при дискретизации звукового сигнала, так как эта система кодирует указания, как следует порождать музыку, а не сам звуковой сигнал. Точнее, MIDI кодирует информацию о том, какой инструмент должен играть, какую ноту и какова продолжительность звучания этой ноты. Это означает, что для кларнета, играющего ноту ре в течение двух секунд, потребуются три байта, а не более двух миллионов битов, как в случае дискретизации сигнала с частотой 44 100 отсчетов.
Из вышесказанного видно, что стандарт MIDI более похож на нотную запись, которую читает исполнитель, чем на само исполнение. Недостатком метода является то, что музыкальная запись в стандарте MIDI может звучать по-разному в исполнении различных музыкальных синтезаторов.
Вспомним правила сложения в начальной школе по отношению к десятичной системе счисления:
0 1 0 1
+ 0 +0 +1 +1
0 1 1 10
Сумма двух чисел находится сложением чисел в правом столбце и делается запись в младший разряд полученной суммы под столбцом, а в старший разряд, если он появляется, в следующий столбец слева и продолжаем сложение.
Например, надо сложить два числа в двоичной системе счисления:
+00011001
00111010
Начинаем сложение 1 и 0 в правом столбце, получаем единицу, которую записываем под столбцом. Теперь мы складываем 0 и 1 в следующем столбце, получаем единицу, которую записываем под столбцом сложенных чисел. Далее складываем два нуля из следующего столбца и получаем 0. Записываем 0 под столбцом. На этом этапе процесс решения выглядит следующим образом:
+00011001
00111010
011
Теперь складываем две единицы в следующем столбце, получаем 10. Записываем 0 под этим столбцом, а 1 переносится влево и записывается над следующим столбцом.
1
+00011001
00111010
0011
Следующие три единицы (две единицы чисел и одна единица переноса) в сумме дают 11. Записываем 1 в результат, и 1 в следующий столбец слева. Теперь решение выглядит так:
1
+00011001
00111010
10011
Далее складываем 0, 1 и 1 переноса получаем 10 и записываем 0 под этим столбцом, а единица переноса записывается над следующим левым столбцом.
1
+00011001
00111010
010011
1
+00011001
00111010
010011
Сложение двух нулей и единицы переноса в результате дают 1, которую мы запише под этим левым столбцом. Далее сложение двух нулей в результате дают 0.
Окончательное решение выглядит так:
1
+00011001
00111010
1010011
+00011001
00111010
01010011
При представлении дробей чтобы отделить целую часть от дробной части используется точка. В курсе математики в школе в качестве разделителя дробной и целой частей используется запятая. В вычислительной технике используют точку, чтобы избежать неоднозначности понимания.
Цифры слева от точки являются целой частью числа и записываются в двоичном представлении по принципу, изложенному выше. Цифры справа от точки являются дробной частью числа и записываются так же, как целые, с той лишь разницей, что каждой позиции в записи числа соответствует разряд, вес которого является дробным числом. То есть вес разряда, соответствующего первой позиции после точки, равен 1/2