Кодирование информации
Для автоматизации работы с различными данными (числовыми, текстовыми, звуковыми и др.) используется прием кодирования – выражение одного типа данных через данные другого типа. Так, естественный человеческий язык представляет собой систему кодирования понятий для выражения мыслей посредством речи, система кодирования Брайля используется у слепых. Разные системы кодирования успешно применяются в различных отраслях техники, науки, экономики.
Сигналы в компьютере передаются посредством электрических импульсов. Чтобы различать каждую используемую цифру десятичной системы, понадобилось бы десять различных сигналов.
С технической точки зрения чем меньше видов сигналов, тем лучше. Поэтому для электронного вычислительного устройства эффективнее и удобнее двоичная система кодирования – представление чисел по основанию 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 тыс. мест в нем зарезервировано.