Смекни!
smekni.com

Организация информации (стр. 2 из 4)

Пример

ASCII-код символа A = 6510 = 4116 = 010001112;

ASCII-код символа G = 7110 = 4716 = 010001112;

ASCII-код символа Z = 9010 = 5A16 = 010110102.

ASCII-код символа C = 6710 = 4316 = 011001112

Unicode-код символа C = 6710 = 00000000011001112.

Цифровое представление вещественных чисел

Для того, чтобы представить вещественное число в виде набора целых чисел, его необходимо привести к нормализованной форме:

x = M*2P;

где M - называется мантиссой (дробной частью), а P - экспонентой (порядком).


После этого мантисса и порядок переводятся в двоичное представление. В памяти ЭВМ вещественное число хранится в виде:

здесь S – признак знака. Поэтому необходимо также определить, какой размер памяти будет отведён под все три части нормализованного числа.

Далее должны быть определены правила (алгоритмы), по которым будут выполняться арифметические операции с нормализованными вещественными числами. Совокупность таких алгоритмов, а также правил представления чисел в нормализованной форме называется арифметикой плавающих чисел [floatingpointnumber].

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

Пример

Рассмотрим принцип цифрового представления вещественного числа 15,375. Пусть под мантиссу отведено 5 десятичных разрядов, а под порядок – 2 разряда. Представим число в нормализованной форме: 15,375 » 1,9219*23. Так как в нормализованной форме первая цифра всегда равна единице, то её можно не хранить. Тогда число будет представлено в виде целого числа 9219003 с относительной погрешностью не более 10-4, то есть число верных десятичных чисел равно 4. В памяти ЭВМ это число будет храниться в двоичной форме, причём можно легко подсчитать, что для хранения такого числа потребуется 27 бит. Максимальное число, которое можно представить таким образом - 9999999=1,99999*1099, а минимальное, не равное нулю - 0000100=0,00001. Если предусмотреть один бит для хранения знака порядка, то минимально представляемое число будет равно 00001-99, то есть 0,00001*10-99.

При попытке выйти за допустимый диапазон ЭВМ выдаст сообщение о переполнении (underflow или overflow).

Конкретные характеристики арифметики различны для разных стандартов. Для ПЭВМ наиболее распространённым является IEEE-стандарт (IEEE-754-1985) [InstituteofElectricalandElectronicEngineers], согласно которому вещественные числа представляются в трёх основных формах (см. табл. 1.2).

Таблица 2. Данные с плавающей точкой по IEEE-стандарту

Тип Размер,бит Диапазон изменения чиселмаксимум минимум Точность десятичн. цифр Машинноеe
single 32 3.4*10-38 3.4*1038 6 1,192*10-7
double 64 1.7*10-308 1.7*10308 15 2,221*10-16
long double 80 3.4*10-4932 3.4*104932 19 1,084*10-19

Источник: [5].

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

Пример

Запишем число 15,375 в двоичном виде:

15.375 = 1111.0112 1.111011*2112

Тогда согласно стандарту IEEE число будет представляться:

single

15,375 = 0 1000.0001.0 111.0110.0000.0000.0000.00002 = 4176000016

long double

15,375 = 0 1000.0000.00010. 1110.1100.0000.0000. … 00002 = 402ЕС0000000000016.

Источник: [5].

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

Пример

Существует особая характеристика плавающей арифметики – машинное эпсилон. Это число, которое определяется как

.

Для плавающего числа единичной точности (по IEEE стандарту):

.

Это значит, если написать программу на языке BASIC:

a=1.2

b=1.e-7

printa+b

то результат, который выдаст программа, будет равен 1.2.

Поэтому программы, учитывающие особенности плавающей арифметики могут трактовать все числа, меньшие, чем машинное эпсилон, практически равными нулю.

Цифровое представление изображений

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

Для описания области она разбивается на множество точечных элементов – пикселов [pixel]. Само множество называется растром [bitmap, dotmatrix, raster] (см. рис. 1.3), а изображения, которые формируются на основе растра, называются растровыми.


Рис.4. Дискретизация области изображения

Число пикселов называется разрешением [resolution]. Часто встречаются значения 640х480, 800х600, 1024х768, 1280х1024. Каждый пиксел нумеруется, начиная с нуля слева направо и сверху вниз.

Для представления цвета используются цветовые модели. Цветовая модель [colormodel] это правило, по которому может быть вычислен цвет. Самая простая цветовая модель – битовая. В ней для описания цвета каждого пиксела (чёрного или белого) используется всего один бит. Для представления полноцветных изображений используются несколько более сложных моделей. Известно, что любой цвет может быть представлен как сумма трёх основных цветов: красного, зелёного и синего. Если интенсивность каждого цвета представить числом, то любой цвет будет выражаться через набор из трёх чисел. Так определяется наиболее известная цветовая RGB-модель. На каждое число отводится один байт. Так можно представить 224 цвета, то есть примерно 16,7 млн. цветов. Белый цвет в этой модели представляется как (1,1,1), чёрный – (0,0,0), красный (1,0,0), синий (0,0,1). Жёлтый цвет является комбинацией красного и зелёного и потому представляется как (1,1,0).

Пример

Пусть имеется изображение вида


Будем считать, что белый цвет представляется нулём, а чёрный – единицей, тогда в однобитовой модели такое изображение представится в виде:

0000000000000000

0000000000000000

0000111110000000

0000100010000000

0000100010000000

0000111110000000

0000000000000000

0000000000000000

В шестнадцатеричном виде этот двоичный набор будет выглядеть так:

00 00 00 00 0F 80 08 80 08 80 0F 80 00 00 00 00

Всего для хранения такого изображения потребуется 16 байт.

Данное изображение легко преобразовать в RGB-модель. Достаточно заменить все нули тройками (1,1,1), а все единицы - тройками (0,0,0). Тогда получим следующее шестнадцатеричное представление изображения:

FFFFFFFFFFFFFFFFFFFFFFFFFFF0 00 1FFFFF

FFF1 FF 1FFFFFFFF1 FF 1FFFFFFFF0 00 1FFFFF

FF FF FF FF FF FF FF FF FF FF FF FF

Для хранения такого изображения потребуется 48 байт.

Цветовая модель RGB [Red-Green-Blue] была стандартизирована в 1931 г. и впервые использована в цветном телевидении. Модель RGB является аддитивной моделью, то есть цвет получается в результате сложения базовых цветов. Существуют и другие цветовые модели, которые для ряда задач оказываются более предпочтительными, чем RGB-модель. Например, для представления цвета в принтере используется субтрактивная CMY-модель [Cyan-Magenta-Yellow], цвет в которой получается в результате вычитания базовых цветов из белого цвета. Белому цвету в этой модели соответствует (0,0,0), чёрному - (1,1,1), голубому - (1,0,0), сиреневому - (0,1,0), жёлтому - (0,0,1). В цветовой модели HSV [Hue-Saturation-Value] цвет представляется через цвет, насыщенность и значение, а в модели HLS [Hue-Lightness-Saturation] через оттенок, яркость и насыщенность. Современные графические редакторы, как правило, могут работать с несколькими цветовыми моделями.

Цифровое представление звука

Звук можно описать в виде совокупности синусоидальных волн определённых частоты и амплитуды. Частота волны определяет высоту звукового тона, амплитуда – громкость звука. Частота измеряется в герцах (Гц [Hz]). Диапазон слышимости для человека составляет от 20 Гц до 17000 Гц (или 17 кГц).


Рис. 5. Дискретизация звукового сигнала

Задача цифрового представления звука, таким образом, сводится к задаче описания синусоидальной кривой. Принцип такого представления изображён на рис. 1.5.

Каждой дискретной выборке присваивается целое число – значение амплитуды. Количество выборок в секунду называется частотой выборки [samplingrate]. Количество возможных значений амплитуды называется точностью выборки [samplingsize]. Таким образом, звуковая волна представляется в виде ступенчатой кривой. Ширина ступеньки тем меньше, чем больше частота выборки, а высота ступеньки тем меньше, чем больше точность выборки.