Кодирование информации

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

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

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

Кодирование чисел

Числовую информацию компьютер обрабатывает в двоичной системе счисления. Таким образом, числа в компьютере представлены последовательностью цифр 0 и 1, называемых битами (бит – один разряд двоичного числа). В начале 1980-х гг. процессоры для персональных компьютеров были 8-разрядными, и за один такт работы процессора компьютер мог обработать 8 бит, т.е. максимально обрабатываемое десятичное число нс могло превышать 111111112 (или 25510). Последовательность из восьми бит называют байтом, т.е. 1 байт = 8 бит. Затем разрядность процессоров росла, появились 16-, 32- и, наконец, 64-разрядные процессоры для персональных компьютеров, соответственно возросла и величина максимального числа, обрабатываемого за один такт.

Использование двоичной системы для кодирования целых и действительных чисел позволяет с помощью 8 разрядов кодировать целые числа от 0 до 255, 16 бит дает возможность закодировать более 65 тыс. значений.

В ЭВМ применяются две формы представления чисел:

естественная форма, или форма с фиксированной запятой. В этой форме числа изображаются в виде последовательности цифр с постоянным для всех чисел положением запятой, отделяющей целую часть от дробной, например +00456,78800; +00000,00786; -0786,34287. Эта форма неудобна для вычислений и применяется только как вспомогательная для целых чисел;

нормальная форма, или форма с плавающей точкой. В этой форме число выражается с помощью мантиссы и порядка как N = ±Μ • Р±r, где Μ – мантисса числа (|M| < 1), r – порядок числа (целое число), Р – основание системы счисления. Приведенные выше числа в нормальной форме будут представлены как +0,456788 • 103, +0,786 • 102, -0,3078634287 • 105.

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

В памяти ЭВМ для хранения чисел предусмотрены форматы: слово – длиной 4 байта, полуслово – 2 байта, двойное слово – 8 байт.

Разрядная сетка для чисел с плавающей запятой имеет следующую структуру:

• нулевой разряд – это знак числа;

• с 1-го по 7-й разряд – записывается порядок в двоичном коде;

• с 8-го по 31-й – указывается мантисса.

Кодирование текстовых данных

Двоичная система позволяет кодировать и текстовую информацию. Восемь двоичных разрядов достаточно для кодирования 256 различных символов.

Первым международным кодом стал стандартный 7-битный код ASCII (American Standard Code for Information Interchange – американский стандартный код для обмена информацией). Появление данного кода в 1963 г. сыграло значительную роль, поскольку до этого различные компьютеры просто не могли взаимодействовать друг с другом. Каждый производитель по-своему представлял символы алфавита, цифры и управляющие коды.

В одних только аппаратных средствах корпорации IBM использовалось девять различных наборов кодировки символов. Но взаимодействие между компьютерами стало настоятельной необходимостью. В 1961 г. комитет Американского национального института стандартов (ANSI), в котором была представлена бо́льшая часть производителей компьютеров, приступил к разработке международного стандарта. Комитету понадобилось свыше двух лет, чтобы проанализировать позиции всех сторон, найти компромисс и завершить разработку универсального кода. Код ASCII стал общим знаменателем для компьютеров, которые ранее не имели друг с другом ничего общего. Всем буквам, цифрам, знакам препинания и другим символам (управляющим кодам) были поставлены в соответствие стандартные числовые значения. Код ASCII поддерживал 128 символов, включающих заглавные и строчные символы латиницы, цифры, специальные знаки и управляющие коды. Базовая таблица кодировки этого кода, начиная с 32-го кода, приведена в табл. 1.2. Коды 0÷31 использованы в данной таблице как служебные и управляющие.

Затем 7-битный код ASCII был расширен до 256 символов и принят как 8-битный международный стандарт ASCII-2, причем коды с 128 по 256 этого стандарта были задействованы для национальных языков разных стран. Для СССР в этой области была введена национальная кодировка КОИ-8 (код обмена информацией, восьмизначный). Код ASCII остался одной из немногих технологий, которой удалось успешно пройти сквозь десятилетия и дожить до наших дней. Сегодня на основе кода ASCII выпускается оборудование стоимостью в миллиарды долларов, большинство операционных систем до сих пор совместимо с ASCII.

Существует несколько различных кодовых таблиц для русского алфавита. Так, кодировка Windows-1251 была введена компанией Microsoft и, учитывая широкое распространение операционной системы Windows и других программных продуктов компании в России, она получила широкое распространение и используется в персональных компьютерах (ПК), работающих на этой платформе. Текст,

Таблица 1.2

Базовая таблица кодировки ASCII

Код

Символ

Код

Символ

Код

Символ

Код

Символ

32

пробел

56

8

80

Р

104

h

33

!

57

9

81

Q

105

i

34

58

:

82

R

106

j

35

#

59

;

83

S

107

k

36

$

60

<

84

т

108

1

37

%

61

=

85

и

109

m

38

&

62

>

86

V

110

n

39

'

63

?

87

W

111

о

40

(

64

@

88

X

112

P

41

)

65

А

89

Y

113

q

42

*

66

В

90

Z

114

r

43

+

67

С

91

[

115

s

44

,

68

D

92

116

t

45

-

69

Е

93

]

117

u

46

70

F

94

^

118

V

47

/

71

G

95

_

119

w

48

0

72

Н

96

'

120

x

49

1

73

I

97

A

121

y

50

2

74

J

98

B

122

z

51

3

75

К

99

c

123

{

52

4

76

L

100

d

124

|

53

5

77

М

101

е

125

}

54

6

78

N

102

f

126

~

55

7

79

О

103

g

127

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

• КОИ-8 (операционная система UNIX) – ч;

• Windows-1251 (операционная система Windows) – Ю;

• ISO (стандарт для русского языка международной организации по стандартизации ISO) – О.

Последним стандартом в области кодирования текстовой информации считается 16-разрядный универсальный международный код Unicode (UNIversal CODE), позволяющий кодировать 65 536 различных символов. Unicode охватывает 28 тыс. букв, знаков, слогов и иероглифов национальных языков мира, и 30 тыс. мест в нем зарезервировано.