Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 4 Кодирование инф. С.с..docx
Скачиваний:
13
Добавлен:
09.04.2015
Размер:
467.23 Кб
Скачать

Знак числа Характерис-тика числа Мантисса числа

0

100

0100

1010

0000

0010

1110

1000

0000

A16=44А02Е80>0

1

100

0100

1010

0000

0010

1110

1000

0000

B16=C4А02Е80<0

0

1

31

Представление чисел в формате в 4 байта.

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

Пусть K = . Следовательно, операциюC = A - B, где A и B - целые положительные числа в любой системе счисления, можно представить в виде:

,

где 10 - основание любой системы счисления;

- константа образования дополнительного кода;

- константа образования обратного кода.

n - количество разрядов представления целых чисел в выбранной системе счисления; для дробных чисел n = 0.

Из выражения следует, что из полученной суммы нужно исключить добавленную константу.

Пример. Пусть A = 46, B = 38. Найти C = A - B.

Константа для дополнительного кода для обратного кодаТогда,.

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

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

Пример 2. Пусть A = 46, B = 38. Найти С1 = В - А, С2 = А + В, С3 = -А - В.

Определим (-А)ДОП = 102 - 46 = 54: (-В)ДОП = 102 - 38 = 62.

Из примеров 1 и 2 следует, что при сложении чисел с разными знаками (С и С1), наличие единицы переноса из старшего разряда является признаком положительного результата (С), отсутствие переноса (С1) - признаком отрицательного результата, при этом константа образования дополнительного кода не скомпенсирована и осталась в сумме.

При сложении чисел с одинаковыми знаками признаки противоположны: отсутствие переноса единицы из старшего разряда при положительных слагаемых (С2) является признаком положительного результата, наличие переноса при отрицательных слагаемых (С3) - признаком отрицательного, при этом одна константа компенсируется переносом, а вторая сохраняется в сумме. Эти же признаки в суммах (С2 и С3) указывают на отсутствие переполнения разрядной сетки для записи результатов (результаты имеют два десятичных разряда).

Пример 3. Пусть A = 61, B = 72. Найти С4 = А + В, С5 = -А - В.

Определим (-А) ДОП = 102 - 61 = 39: (-В) ДОП= 102 - 72 = 28.

Здесь в обоих случаях при сложении чисел с одинаковыми знаками происходит переполнение разрядной сетки, признаками которого являются: наличие переноса из старшего разряда при положительных слагаемых (С4) и отсутствие переноса при отрицательных (С5). При получении суммы С5 перенос отсутствует, т.е. обе константы 100 остались в полученном результате. Следовательно, результат 67-100 = -33, -33 - 100 = - 133 по модулю больше константы и в отведенные два разряда не умещается.

Рассмотрим образование кодов в двоичной системе счисления на примере А=27. Знак числа, как было указано выше, кодируется 0 или 1, записывается перед старшим разрядом и отделяется для наглядности точкой, которая не является частью кода и в разрядной сетке не отражается. Для простоты примем, что задана разрядная сетка в один байт, т.е. 8 двоичных разрядов, из которых один отводится под знак, а 7 для записи числа.

А10 =  27 = А16 =  1B = А2 = 11011.

Примем константу для дополнительного кода: К10 = 2­8 = К2 = 101000 = 100000000 и константу для обратного кода: К10 = 2­8 - 1 = К2 = 101000 - 1 = 11111111.

В таблице приведены прямой, обратный и дополнительные коды для чисел 27 и -27.

Число

[A]ПК

[A]ОК

[A]ДК

11011

0.0011011

0.0011011

0.0011011

11111111

100000000

00011011

00011011

- 11011

1.0011011

1.1100100

1.1100101

Приведем правила образования машинных кодов:

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

  2. Положительное число в прямом, обратном и дополнительном кодах имеет одинаковое изображение.

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

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

Определение прямого кода отрицательного числа по его обратному и дополнительному коду производится по тем же правилам.

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

Действия над числами, представленными в естественной форме. При сложении кодов чисел в естественной форме следует учитывать следующие положения:

  1. числа хранятся в дополнительном коде;

  2. в сумматоре числа складываются вместе со знаками, при этом образуется знак результата;

  3. при сложении чисел с разными знаками единица переноса из знакового разряда стирается, т.е. компенсируется одна константа образования дополнительного кода;

  4. признаками переполнения разрядной сетки при сложении кодов чисел с одинаковыми знаками могут служить:

  1. знак суммы не соответствует знакам слагаемых;

  2. переносы из старшего разряда суммы в знаковый и из знакового не согласуются, т.е. один из них присутствует, а другой отсутствует.

Очевидно, что если переносы согласуются, т.е. оба отсутствуют или оба присутствуют, то переполнение разрядной сетки не происходит.

Пример 4. Дано: А = 267, В = 186. Найти сумму чисел при разных знаках слагаемых в 16-ти разрядном формате.

Решение.

  1. представим исходные числа в двоичной системе счисления:

А10 = 267 = А16 = 10B = A2 = 100001011

B10 =186 = B16 = BA = A2 =10111010

  1. составим машинные коды этих чисел с разными знаками:

[A]ПК = 0.000000100001011; [B]ПК = 0.000000010111010. [-A]ДК = 1.111111011110101; [-B]ДК = 1.111111101000110.

  1. выполнение действий:

С1 = А + В С2 = А - В [A]ПК = 0.000000100001011; [А]ПК=0.000000100001011 [В]ПК = 0.000000010111010 [-B]ДК=1.111111101000110 [С1]ПК = 0.000000111000101>0 [С2]ДК = 10.000000001010001>0

+

С3 = В - А С4 = -А - В [В]ПК = 0.000000010111010 [-А] ДК = 1.111111011110101 [-А]ДК = 1.111111011110101 [-B] ДК = 1.111111101000110 [С3]ДК = 1.111111110101111<0 [С4] ДК = 11.111111000111011<0

Из примера следует:

  1. При получении сумм слагаемых с одинаковыми знаками (С1 и С4) переполнение разрядной сетки не произошло, т. к. знак суммы соответствует знакам слагаемых и переносы в знаковый и из знакового согласуются.

  2. При получении сумм С2 и С4 образовался перенос из знакового разряда, который следует исключить.

  3. Суммы С1 и С2 - положительные, С2 и С4 - отрицательные, т.е. знаки результатов получены при сложении чисел со знаками.

Полученные суммы заносятся в разрядную сетку памяти в дополнительном коде, т.е. без изменения.

Проверка. Для этого следует перевести полученные суммы любым способом в десятичную систему и сравнить с заданием.

С1 =111000101=128 +127 + 126 + 122 +120 =256 + 128 +64 + 4 + 1 = 453;

C1=267 + 186 = 453.

C2= 1010001= 5116 = 516 + 1 = 81; C2 = 267 - 186 = 81;

C3 = - 1010001 = -[(((((12 + 0)2 +1)2 + 0)2 + 0)2 + 0)2 + 1] = -81.

C4 = - 111000101 = - 1C516 = - [(116 + 12)16 + 5] = - 453.

Пример 5. Дано А = 24756, В = 8397. Найти суммы положительных и отрицательных значений чисел в 16- разрядном формате.

Решение.

А10 = 24756= А16 = 60B4 = А2 = 110000010110100;

В10 = 8397= В16 = 20CD = В2 = 10000011001101.

С1 = А + В С2 = - А - В [A]ПК = 0.110000010110100 [-А]ПК = 1.001101101100100 [В]ПК = 0.010000011001101 [-B]ДК = 1.110010000101011 [С1]ПК  1.000000110000001<0 [С2]ДК  10.111111110001111>0

Полученные суммы не соответствуют ожидаемым результатам, т.к. произошло переполнение разрядной сетки за допустимые значения (32767). Переполнение разрядной сетки легко определить либо по первому признаку - знаки сумм С1 и С2 не соответствуют знакам слагаемых, либо по второму - переносы в знаковый и из знакового разряда в суммах С1 и С2 не согласуются. В этих случаях в больших ЭВМ вырабатывается запрос на прерывание программы, в некоторых типах малых ЭВМ производится автоматический переход к нормальной форме представления данных.

Действия над числами, представленными в нормальной форме. При алгебраическом сложении чисел, представленных в нормальной форме, необходимо учитывать:

  1. Числа в нормальной форме хранятся в памяти в прямом коде с нормализованными мантиссами.

  1. Сложение кодов производится путем сложения мантисс только при одинаковых порядках (характеристиках) слагаемых. За общий выбирается наибольший порядок. Выравнивание порядков слагаемых осуществляется изменением мантиссы меньшего числа.

Пусть ,и. Тогда разность порядкови.

,

где - мантисса, приведенная к большему порядку путем ее сдвига вправо наP разрядов основания q.

  1. При сложении мантисс с одинаковыми знаками возможно переполнение разрядной сетки, что является признаком нарушения нормализации.

  1. Результаты в прямом коде нормализуются.

  2. Действия в сумматоре выполняются только над кодами мантисс, которые поступают из регистров в младшие 24 разряда сумматора, знаки мантисс и значения характеристик заносятся в специальные схемы, которые обеспечивают выравнивание характеристик, нормализацию мантиссы результата, формирование знака и характеристики суммы. В старшие разряды (0 - 7) сумматора записываются нули.

  3. Алгоритм операции алгебраического сложения после выравнивания характеристик зависят от знаков слагаемых:

  1. Если знаки слагаемых одинаковы (положительные или отрицательные), то модули мантисс (прямые коды) суммируются. Переполнение определяется наличием переноса 1 из старшего разряда мантиссы в 7-ой разряд сумматора (в поле характеристики), что вызывает нарушение нормализации мантиссы влево. Нормализация результата производится сдвигом мантиссы на одну шестнадцатеричную цифру вправо. Старшая тетрада мантиссы при этом заполняется 0001, а характеристика результата увеличивается на 1. После этого в регистре результата сумматора формируется результат операции: из схем анализа знаков и характеристик заносятся в нулевой разряд знак одного из слагаемых, в 1-7 разряды - характеристика, а в 8-31 разрядах сохраняется мантисса суммы в прямом коде.

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

Нормализация мантиссы суммы производится сдвигом ее влево на одну шестнадцатеричную цифру и уменьшением характеристики на единицу. После этого в регистре сумматора формируется результат: в нулевой разряд заносится знак большего по модулю слагаемого, в 1-7 разряды - характеристика и в 8-31 разряды мантисса результата в прямом коде.

Реализацию этих положений рассмотрим на примерах.

Пример 6. Даны два числа: A =В =НайтиС1=А + В, С2= – А В.

Решение. Будем представлять мантиссы и характеристики чисел в шестнадцатеричной системе: А16 = F,D; В16 = 0,7.

  1. Нормализация мантисс и определение характеристик:

mА = 0,FD; PXA = 40 + 1= 41;

mB = 0, 7; PXB = 40 + 0 = 40.

Замечание. Напомним, что характеристика смещена в область положительных (беззнаковых) значений на 26 = 4016­.

  1. Выравнивание характеристик:

P= 41– 40 = 1; .

  1. Выполнение действий.

1. С1 = А+ В

[mA]ПК = 00 'FD0000; PXA = 41

[mB]ПК = 00 '070000; PXB = 41

[mC1]ПК = 01 '040000; PXC1 = 41

Так как слагаемые с одинаковыми знаками, то перенос 1 из старшего разряда мантиссы характеризует переполнение разрядной сетки, что является нарушением нормализации мантиссы результата влево.

Нормализация мантиссы

[mC1]ПК = 00 '104000; PC1 = 41+ 1 = 42

Проверка. C1 = 10,416 = 16;C1 = 15+16.

В разрядной сетке регистра сумматора формируется результат действия: заносятся знак результата (+), характеристика (42) и сохраняется мантисса в прямом коде.

Ответ.

или С1 42104000.

2. С2 = – АВ.

Так как числа A, В и результат С2 хранятся в прямом коде, то нет необходимости выполнять двойное преобразование: данных в дополнительный, а результата в прямой коды. Поэтому действие выполняется С2 = – (А+В), т.е. производится сложение прямых кодов мантисс, а результату приписывается знак одного из чисел (минус), то есть С2 = – С1.

Ответ. С21100 0010 0001 0000 0100 0000 0000 0000 или С2 С2104000.

Пример 7. Даны два числа: A =В =НайтиС3 = АB и С4 = ВА.

Решение.

mB*= 0,07; PXB = 41; - m B* ДОП = 1,00 – 0,07 = 0, F9; [- m B*]ДК = 00' F90000.

mA =0,FD; PXA = 41; - m A ДОП = 1,00 – 0,FD = 0, 03; [- mA]ДК = 00' 030000

1. С3 = AB

[mA]ПК = 00 'FD0000; PXA = 41 [- mВ*]ДК = 00 'F90000; PXB = 41 [mC3]ДК = 01 'F60000>0; PXC1 = 41

Так как слагаемые с разными знаками, то 1 переноса из старшего разряда является признаком положительного результата и стирается, компенсируя константу дополнительного кода.

Проверка. С3 = F,6 = 15 .

Ответ. С3 0100 0001 1111 0110 0000 0000 0000 0000 илиС3 41F60000.

2. C4 = В - А

[mВ*]ПК = 00 '070000 PXB = 41

[- mA]ДК = 00 '030000; PXA = 41 [mC4]ДК = 00 '0A0000<0; PXC4 = 41

Так как слагаемые с разными знаками и перенос из старшего разряда отсутствует, то результат отрицательный в дополнительном коде и должен быть представлен в прямом коде

[mC4] ПК = 00 ' F60000; PXC4 = 41.

Проверка. С4 = F,4 = –15 .

Ответ. C4 1100 0001 1111 0110 0000 0000 0000 0000 илиС4 С1F60000.

Пример 8. Дано: A = 231, B = 219,75. Найти С1 = А В, С2 = ВА.

Решение. А16 = E7, В16 = DB,C.

  1. Нормализация мантисс и определение характеристик.

mA = 0,E7; PXA = 40 + 2 = 42;

mB = 0,DBC; PXB = 40 + 2 = 42;

  1. Выполнение действий.

1. С1 = АВ

[mA*]ПК = 00 'E70000; PXA = 42

[- mB*]ДК = 00 '244000; PXB = 42

[mC1]ДК = 01 '0B4000>0; PXC1 = 42

Единица переноса стирается, результат положительный, но произошло нарушение нормализации вправо.

Нормализация мантиссы

[mC1]ПК = 00 'B40000; PXC1 = 42 – 1 = 41.

Проверка. С1 = B,4 = – 11.

Ответ. C1 0100 0001 1011 0100 0000 0000 0000 0000 или С1 41B40000.

2. C2 = BA

Так как знаки слагаемых разные и перенос отсутствует, то результат отрицательный, представлен в дополнительном коде и должен быть преобразован в прямой код.

[mВ*]ПК = 00 'DBC000 PXB = 42 [- mA]ПК = 00 '190000; PXA = 42

[mC2]ДК = 00 'F4C000<0; PXC2 = 42

[mC2]ПК = 00 '0B4000; PXC2 = 42

Старшая тетрада мантиссы равна нулю, следовательно, произошло нарушение нормализации вправо.

Нормализация мантиссы:

[mC2]ПК = 00 'B40000; PXC2 = 42 – 1 = 41.

Ответ. C2 0100 0001 1011 0100 0000 0000 0000 0000 илиC2 41B40000.

Замечание. При выполнении операций умножения и деления порядки не выравниваются, нормализованные мантиссы чисел умножаются или делятся, порядки соответственно складываются или вычитаются, а знаки произведения и частного определяются, как и в естественной форме, сложением по модулю 2 знаков сомножителей или делимого и делителя.

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

Каждый символ, будучи представлен числом, в соответствии с некоторой таблицей, о которой договариваются заранее, хранится в компьютере в виде восьми разрядного числа. Таким образом, при вводе информации каждая буква русского или латинского алфавитов, цифра, знак пунктуации, дополнительный символ или действие кодируется определенной последовательностью двоичных цифр в соответствии с таблицами кодирования, например, ДКОИ, КОИ-8, ASCII. Кодировка символов в соответствии с кодом ASCII (American Standard Code for Information Interchange) приведена в двух таблицах: стандартной (Таблица 1) и альтернативной (Таблица 2).

Таблица 1

Код

Символ

Код

Символ

Код

Символ

Код

Символ

Код

Символ

Код

Символ

Код

Символ

32

46

.

60

<

74

J

88

X

102

f

116

t

33

!

47

/

61

=

75

K

89

Y

103

g

117

u

34

"

48

0

62

>

76

L

90

Z

104

h

118

v

35

#

49

1

63

?

77

M

91

[

105

i

119

w

36

$

50

2

64

@

78

N

92

\

106

j

120

x

37

%

51

3

65

A

79

O

93

]

107

k

121

y

38

&

52

4

66

B

80

P

94

^

108

l

122

z

39

'

53

5

67

C

81

Q

95

_

109

m

123

{

40

(

54

6

68

D

82

R

96

`

110

n

124

|

41

)

55

7

69

E

83

S

97

a

111

o

125

}

42

*

56

8

70

F

84

T

98

b

112

p

126

~

43

+

57

9

71

G

85

U

99

c

113

q

127

?

44

,

58

:

72

H

86

V

100

d

114

r

128

45

-

59

;

73

I

87

W

101

i

115

s

Таблица 2

Код

Символ

Код

Символ

Код

Символ

Код

Символ

Код

Символ

Код

Символ

Код

Символ

Код

Символ

128

А

144

Р

160

а

176

192

208

224

р

240

129

Б

145

С

161

б

177

193

209

225

с

241

±

130

В

146

Т

162

в

178

194

210

226

т

242

131

Г

147

У

163

г

179

195

211

227

у

243

132

Д

148

Ф

164

д

180

196

212

228

ф

244

133

Е

149

Х

165

е

181

197

213

229

х

245

134

Ж

150

Ц

166

ж

182

198

214

230

ц

246

?

135

З

151

Ч

167

з

183

199

215

231

ч

247

136

И

152

Ш

168

и

184

200

216

232

ш

248

°

137

Й

153

Щ

169

й

185

201

217

233

щ

249

138

К

154

Ъ

170

к

186

202

218

234

ъ

250

139

Л

155

Ы

171

л

187

203

219

235

ы

251

140

М

156

Ь

172

м

188

204

220

236

ь

252

141

Н

157

Э

173

н

189

205

221

237

э

253

²

142

О

158

Ю

174

о

190

206

222

238

ю

254

143

П

159

Я

175

п

191

207

223

239

я

255

Таким образом, фраза “Cat Вася.” будет храниться как следующая последовательность бинарных сигналов:

С

a

t

В

а

с

я

.

67

97

116

32

130

160

225

239

46

01000011

01100001

01110100

00100000

10000010

10100000

11100001

11101111

00101110

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

Теоретически давно существует решение этих проблем. Оно называется Unicode (Юникод). Unicode– это кодировочная таблица, в которой для кодирования каждого символа используется 2 байта, т.е. 16 бит. На основании такой таблицы может быть закодированоN=216=65 536 символов.

Юникод включает практически все современные письменности, в том числе: арабскую, армянскую, бенгальскую, бирманскую, греческую, грузинскую, деванагари, иврит, кириллицу, коптскую, кхмерскую, латинскую, тамильскую, хангыль, хань (Китай, Япония, Корея), чероки, эфиопскую, японскую (катакана, хирагана, кандзи) и другие.

С академической целью добавлены многие исторические письменности, в том числе: древнегреческая, египетские иероглифы, клинопись, письменность майя, этрусский алфавит.

В Юникоде представлен широкий набор математических и музыкальных символов, а также пиктограмм.

Для символов кириллицы в Юникоде выделено два диапазона кодов: Cyrillic(#0400 — #04FF) иCyrillicSupplement(#0500 — #052F).

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

Поэтому сейчас на практике больше распространено представление Юникода UTF-8 (Unicode Transformation Format). UTF-8 обеспечивает наилучшую совместимость с системами, использующими 8-битные символы. Текст, состоящий только из символов с номером меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. Остальные символы Юникода изображаются последовательностями длиной от 2 до 4 байтов. В целом, так как самые распространенные в мире символы – символы латинского алфавита - в UTF-8 по-прежнему занимают 1 байт, такое кодирование экономичнее, чем чистый Юникод.

Контрольные задания

  1. Дано А = 23726, В = 5317. Найти суммы положительных и отрицательных значений чисел в 16-разрядном формате.

  2. Даны два числа в двоичной системе счисления: А = 1001110 и В = 1101. Произвести вычитание А - В непосредственно и с помощью дополнительного кода (используя 8-разрядную сетку целых чисел, отводя старший бит для знака).

  3. Даны два числа в двоичной системе счисления: А = 1010 и В = 101. Произвести умножение АВ.

  4. Дано: А = 1101010, В = 1001. Произвести деление АВ нацело.

  5. Дано: А = 234, В = 123. Найти сумму чисел при разных знаках слагаемых в 16-разрядном формате.

  6. Даны два числа в десятичной системе счисления: А = 31, В = 209,5. Представить их в машинных кодах для нормализованных чисел. Выполнить действия: С1 = А - В, С2 = В - А.

  7. Представить последовательность символов "А=13-b" как последовательность бинарных сигналов (в стандартном ASCII коде).

  8. Какой объем памяти (в байтах) потребуется для хранения страницы русского текста из 10 строк по 50 символов в строке.

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

В упакованном формате для каждой десятичной цифры отво­дится по четыре двоичных разряда (полбайта), при этом знак чис­ла кодируется в крайнем правом полубайте числа (1100 - знак «+», 1101 – знак «-»).

Структура поля упакованного формата:

Упакованный формат применяется обычно в ЭВМ при выпол­нении арифметических операций сложения, вычитания, умноже­ния, деления и сравнения.

В зонном формате для каждой десятичной цифры отводится по целому байту, при этом старшие полубайты (зона) каждого бай­та (кроме самого младшего) заполняются кодом 1111, а в млад­ших (левых) полубайтах обычным образом кодируются десятич­ные цифры. Старший полубайт (зона) самого младшего (правого) байта используется для кодирования знака числа.

Структура поля зонного формата:

3онный формат удобен для представления вводимой в ЭВМ де­сятичной информации, когда каждая десятичная цифра вместе с кодом зоны занимает целый байт.

Пример. Число -283(10) = -0010 1000 0011(2-10) в ЭВМ будет представ­лено:

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

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

При растровом методе изображение представляется как совокупность точек, называемых пикселем (pixel – сокращение от picture element - элемент изображения). Общепринятым на сегодняшний день считается представления черно-белых иллюстраций в виде комбинаций точек с 256 градациями серого цвета, и таким образом, для кодирования яркости любой точки обычно достаточно 8-разрядного двоичного числа.

Для кодирования цветных графических изображений применяется принцип декомпозиции произвольного цвета на основные составляющие. В качестве таких составляющих используют три основных цвета: красный (Red,R), зеленый (Green,G) и синий (Blue,B). На практике считается, что любой цвет, видимый человеческим глазом, можно получить путем механического смешения этих трех основных цветов. Такая система кодирования называется системой RGB (по первым буквам названий основных цветов).

Если для кодирования яркости каждой из основных составляющих использовать по 256 значений (восемь двоичных разрядов), как это принято для полутоновых черно-белых изображений, то на кодирование цвета одной точки надо затратить 24 разряда (рис.4.8) .

Рис.4.1 Кодирование цветного изображения

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

Далее перейдем к рассмотрению кодирования звуковой информации.

На слух человек воспринимает упругие волны, имеющие частоту где-то в пределах от 16 Гц до 20 кГц (1 Гц - 1 колебание в секунду). В соответствии с этим упругие волны в любой среде, частоты которых лежат в указанных пределах, называют звуковыми волнами или просто звуком. В учении о звуке важны такие понятия как тон и тембр звука. Всякий реальный звук, будь то игра музыкальных инструментов или голос человека, - это своеобразная смесь многих гармонических колебаний с определенным набором частот.

Колебание, которое имеет наиболее низкую частоту, называют основным тоном, другие - обертонами.

Тембр - разное количество обертонов, присущих тому или иному звуку, которое придает ему особую окраску.

Музыкальный звук можно характеризовать тремя качествами:

  • тембром, т. е. окраской звука, которая зависит от формы колебаний;

  • высотой, определяющейся числом колебаний в секунду (частотой);

  • громкостью, зависящей от интенсивности (амплитуды) колебаний.

Громкость звука зависти от давления, возникающего при прохождении звуковой волны в жидкой и газообразной среде, которое непосредственно воспринимается ухом. Громкие звуки создают большое давление, тихие - малое. Давление измеряется в Паскалях, однако в акустике звуковое давление обычно измеряется в децибелах (дБ) относительно порога слышимости. По определению, величина порога принята равной pt=0,00002Па=20мкПа. Порог слышимости принимается за 0дБ, а громкость вычисляется как L=20*log10(p/pt), где L [дБ] - громкость (в смысле звукового давления), p [Па]- звуковое давление, pt [Па]- порог слышимости. При этом: все слышимые звуки имеют положительную величину громкости; неслышимые (ниже порога громкости) - отрицательную; изменение громкости на 6дБ соответствует двукратному изменению давления; изменение на 20дБ - изменению давления в 10 раз.

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

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

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

Семпл- это промежуток времени между двумя измерениями амплитуды аналогового сигнала.

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

Вывод цифрового звука происходит при помощи цифро-аналогового преобразователя (ЦАП), который на основании поступающих цифровых данных в соответствующие моменты времени генерирует электрический сигнал необходимой амплитуды.

Важными параметрами семплирования являются частотаиразрядность.

Частота- количество измерений амплитуды аналогового сигнала в секунду.

Если частота семплирования не будет более чем в два раза превышать частоту верхней границы звукового диапазона, то на высоких частотах будут происходить потери (согласно теореме Котельникова, [1]). Этим объясняется то, что стандартная частота для звукового компакт-диска - это частота 44.1 кГц. Так как диапазон колебаний звуковых волн находится в пределах от 20 Гц до 20 кГц, то количество измерений сигнала в секунду должно быть больше, чем количество колебаний за тот же промежуток времени. Если же частота дискредитации значительно ниже частоты звуковой волны, то амплитуда сигнала успевает несколько раз измениться за время между измерениями, а это приводит к тому, что цифровой отпечаток несет хаотичный набор данных. При цифро-аналоговом преобразовании такой семпл не передает основной сигнал, а выдает только шум.

В формате компакт-дисков Audio DVD за одну секунду сигнал измеряется 96 000 раз, т.е. применяют частоту семплирования 96 кГц. Для экономии места на жестком диске в мультимедийных приложениях довольно часто применяют меньшие частоты: 11, 22, 32 кГц. Это приводит к уменьшению слышимого диапазона частот, а, значит, происходит сильное искажение того, что слышно.

Разрядность указывает, с какой точностью происходят изменения амплитуды аналогового сигнала. Точность, с которой при оцифровке передается значение амплитуды сигнала в каждый из моментов времени, определяет качество сигнала после цифро-аналогового преобразования. Именно от разрядности зависит достоверность восстановления формы волны.

Для кодирования значения амплитуды используют принцип двоичного кодирования. Звуковой сигнал должен быть представлен в виде последовательности электрических импульсов (двоичных нулей и единиц). Обычно используют 8, 16-битное или 20-битное представление значений амплитуды. От частоты дискредитации (количества измерений уровня сигнала в единицу времени) зависит качество кодирования. С увеличением частоты дискредитации увеличивается точность двоичного представления информации. При частоте 8 кГц (количество измерений в секунду 8000) качество семплированного звукового сигнала соответствует качеству радиотрансляции, а при частоте 48 кГц (количество измерений в секунду 48000) - качеству звучания аудио-CD.

Если использовать 8-битное кодирование, то можно достичь точности изменения амплитуды аналогового сигнала до 1/256 от динамического диапазона цифрового устройства (28 = 256).

Если использовать 16-битное кодирование для представления значений амплитуды звукового сигнала, то точность измерения возрастет в 256 раз.

В современных преобразователях принято использовать 20-битное кодирование сигнала, что позволяет получать высококачественную оцифровку звука.

Формат Audio DVD использует разрядность 24 бита и частоту семплирования 96 кГц.

Рассмотрим такой пример: подсчитать, сколько места будет занимать одна минута цифрового звука разрядностью 16 бит на жестком диске или любом другом цифровом носителе, записанного с частотой

а) 44.1 кГц;

б) 11 кГц;

в) 22 кГц;

г) 32 кГц

Решение.

а) Если записывают моносигнал с частотой 44.1 кГц разрядностью 16 бит (2 байта), то каждую минуту аналого-цифровой преобразователь будет выдавать 44100 * 2 * 60 = 5292000 байт (более 5 Мб) данных об амплитуде аналогового сигнала, который в компьютере записываются на жесткий диск.

Если записывают стереосигнал, то 10584000 байт (более 10 Мб).

б) для частот 11, 22, 32 кГц расчеты производятся аналогично.

Еще один пример: какой объем данных имеет моноаудиофайл, длительность звучания которого 1 секунда, при среднем качестве звука (16 бит, 24 кГц)?

Решение.

16 бит * 24000 = 384 000 бит = 48 000 байт = 46.875 Кб.