4.3. Кодирование символов. Байт.
<<Назад
|
Содержание
| Далее>>
На основании одной ячейки информационной
ёмкостью 1 бит можно закодировать только 2 различных состояния.
Для того чтобы каждый символ, который можно ввести с клавиатуры
в латинском регистре, получил свой уникальный двоичный
код, требуется 7 бит. На основании последовательности из 7
бит, в соответствии с формулой Хартли, может быть получено
N=27=128 различных
комбинаций из нулей и единиц, т.е. двоичных кодов. Поставив в
соответствие каждому символу его двоичный код, мы получим
кодировочную таблицу. Человек оперирует символами, компьютер
– их двоичными кодами.
Для латинской раскладки клавиатуры такая
кодировочная таблица одна на весь мир, поэтому текст, набранный
с использованием латинской раскладки, будет адекватно отображен
на любом компьютере. Эта таблица носит название ASCII
(American Standard Code of Information Interchange)
по-английски произносится [э́ски], по-русски произносится
[а́ски]. Ниже приводится вся таблица ASCII, коды в
которой указаны в десятичном виде. По ней можно определить, что
когда вы вводите с клавиатуры, скажем, символ “*”, компьютер его
воспринимает как код 42(10), в свою очередь 42(10)=101010(2)
– это и есть двоичный код символа “*”. Коды с 0 по 31 в этой
таблице не задействованы.
Таблица 8.
Таблица символов ASCII
код |
символ |
код |
символ |
код |
символ |
код |
символ |
код |
символ |
код |
символ |
32 |
Пробел |
48 |
. |
64 |
@ |
80 |
P |
96 |
' |
112 |
p |
33 |
! |
49 |
0 |
65 |
A |
81 |
Q |
97 |
a |
113 |
q |
34 |
" |
50 |
1 |
66 |
B |
82 |
R |
98 |
b |
114 |
r |
35 |
# |
51 |
2 |
67 |
C |
83 |
S |
99 |
c |
115 |
s |
36 |
$ |
52 |
3 |
68 |
D |
84 |
T |
100 |
d |
116 |
t |
37 |
% |
53 |
4 |
69 |
E |
85 |
U |
101 |
e |
117 |
u |
38 |
& |
54 |
5 |
70 |
F |
86 |
V |
102 |
f |
118 |
v |
39 |
' |
55 |
6 |
71 |
G |
87 |
W |
103 |
g |
119 |
w |
40 |
( |
56 |
7 |
72 |
H |
88 |
X |
104 |
h |
120 |
x |
41 |
) |
57 |
8 |
73 |
I |
89 |
Y |
105 |
i |
121 |
y |
42 |
* |
58 |
9 |
74 |
J |
90 |
Z |
106 |
j |
122 |
z |
43 |
+ |
59 |
: |
75 |
K |
91 |
[ |
107 |
k |
123 |
{ |
44 |
, |
60 |
; |
76 |
L |
92 |
\ |
108 |
l |
124 |
| |
45 |
- |
61 |
< |
77 |
M |
93 |
] |
109 |
m |
125 |
} |
46 |
. |
62 |
> |
78 |
N |
94 |
^ |
110 |
n |
126 |
~ |
47 |
/ |
63 |
? |
79 |
O |
95 |
_ |
111 |
o |
127 |
DEL |
Чтобы хранить также и коды национальных
символов каждой страны (в нашем случае – символов кириллицы)
требуется добавить еще 1 бит, что увеличит количество уникальных
комбинаций из нулей и единиц вдвое, т.е. в нашем распоряжении
дополнительно появится 128 свободных кодов (со 128-го по 255-й),
в соответствие которым можно поставить символы русского
алфавита.
Таким образом, отведя под хранение
информации о коде каждого символа 8 бит, мы получим
N=28=256 уникальных
двоичных кодов, что достаточно, чтобы закодировать все символы,
которые можно ввести с клавиатуры.
Так мы подошли к необходимости
познакомиться с еще одной базовой единицей измерения – байтом.
Байт - последовательность из 8 бит.
1 байт = 23 бит = 8 бит.
На основании одного байта можно получить 28=256
уникальных двоичных кодов.
В современных кодировочных таблицах под хранение информации
о коде каждого символа отводится 1 байт.
1 символ = 1 байт.
В байтах измеряется объем данных (V) при их хранении и
передаче по каналам связи. Например, текст “Добрый
день!” занимает объем равный 12 байтам.
Биты в байте нумеруются с конца с 0-го по 7-й. Минимальная
комбинация на основании одного байта – восемь нулей,
максимальная – восемь единиц. Рис. 18а.
11111111(2)=27+26+25+24+23+22+21+20=128+64+32+16+8+4+2+1=255(10)
При хранении на физическом уровне каждый байт может быть
реализован, например, на базе восьми конденсаторов, каждый
из которых либо разряжен (0), либо заряжен (1). Рис. 18b.
|
|
Рис. 18а. Байт: минимальная и максимальная комбинации |
Рис. 18b. Байт: соответствие
двоичного числа и электрического импульса. |
Возвращаясь к кодировочным таблицам,
заметим, что на сегодняшний день в использовании не одна, а
несколько кодировочных таблиц, включающих коды кириллицы, – это
стандарты, выработанные в разные годы и различными учреждениями.
В этих таблицах различен порядок, в котором расположены друг за
другом символы кирилличного алфавита, поэтому одному и тому же
коду соответствуют разные символы. По этой причине, мы иногда
сталкиваемся с текстами, которые состоят из русских букв, но в
бессмысленной для нас последовательности.
Например, текст “Компьютерные вирусы”,
введенный в кодировке Windows-1251 в кодировке КОИ-8
будет отображен так: ”лПНРШАФЕТОШЕ ЧЙТХУЩ”.
Таблица 9.
Несоответствие кодов символов в различных
кодировках кириллицы.
Код |
Windows-1251 |
КОИ-8 |
ISO |
Под национальные кодировки отданы коды с
128-го по 255-й.
|
192 |
А |
ю |
Р |
193 |
Б |
а |
С |
194 |
В |
б |
Т |
Эта проблема разрешима - на каждом
компьютере найдутся все основные кодировочные таблицы, и если
тест выглядит неадекватно, нужно попробовать перекодировать его,
просто указав использовать другую кодировочную таблицу. Но
наличие такой проблемы, конечно, вносит неудобства.
Используя 8-битную кодировочную таблицу мы не сможем адекватно
увидеть на мониторе и тексты, созданные на тех языках, где
используются символы, отличные от латинских и кирилличных,
например символы с умляутами в немецком языке.
<<Назад
|
Содержание
| Далее>>
|