Представление символов в эвм
В ЭВМ каждый символ (например, буква, цифра, знак препинания) закодирован в виде беззнакового целого двоичного числа. Кодировка символов – это соглашение об однозначном соответствии каждому символу одного беззнакового целого двоичного числа, называемого кодом символа.
Для русского алфавита существует несколько кодировок (табл. 5 .3).
Таблица 5.3. Кодировки букв алфавита русского языка
|
Кодировка |
Операционная система |
Количество кодируемых символов |
Размер кода одного символа, байт |
|
866 |
MS DOS |
256 |
1 |
|
1251 (Win-1251,CP-1251) |
Windows |
256 |
1 |
|
КОИ-8 (КОИ-8Р) |
Unix |
256 |
1 |
|
Unicode |
Windows |
65536 |
2 |
В кодировках 866, 1251, КОИ-8 и Unicodeпервые 128 символов (цифры, заглавные и строчные латинские буквы, знаки препинания) со значениями кодов от 0 до 127 одни и те же и определяются стандартомASCII(American Standard Code for Information Interchange– американский стандартный код для обмена информацией). Цифры 0, 1, ..., 9 имеют соответственно коды 48, 49, ..., 57; прописные латинские буквыA, B, ..., Z(всего 26 букв) – коды 65, 66, ..., 90; строчные латинские буквыa,b, ...,z(всего 26 букв) – коды 97, 98, ..., 122.
Вторые 128 символов со значениями кодов от 128 до 255 кодировок 866, 1251, КОИ-8 содержат символы псевдографики, математические операции и символы алфавитов, отличных от латинского. Причем разные символы разных алфавитов имели один и тот же код. Например, в кодировке 1251 символ русского алфавита Б имеет тот же код, что и символ Á в стандартной кодировке ASCII. Такая неоднозначность вызывала проблемы с кодировкой текста. Поэтому была предложена двухбайтовая кодировкаUnicode, которая позволяет закодировать символы многих нелатинских алфавитов.
Десятичные значения кодов букв русского алфавита в кодировках 866, 1251 и Unicodeприведены в табл. 5 .4.
Таблица 5.4. Значения кодов букв русского алфавита
|
Кодировка |
Коды букв русского алфавита | |||
|
А-Я (кроме Ё) |
а-я (кроме ё) |
Ё |
ё | |
|
866 |
128-159 |
160-175 (а-п) 224-239(р-я) |
240 |
241 |
|
1251 |
192-223 |
224-255 |
168 |
184 |
|
Unicode |
1040-1071 |
1072-1103 |
1025 |
1105 |
В кодировке КОИ-8 (табл. 5 .5) коды букв русского алфавита упорядочены не по расположению букв в алфавите, а по соответствию их буквам латинского алфавита. Например, коды латинских букв А, В, С имеют соответственно десятичные значения 65, 66, 67, а русских букв А, Б, Ц – значения 225, 226, 227.
Таблица 5.5. Значения кодов букв русского алфавита в кодировке КОИ-8
|
A |
225 |
К |
235 |
Х |
232 |
а |
193 |
к |
203 |
х |
200 |
|
Б |
226 |
Л |
236 |
Ц |
227 |
б |
194 |
л |
204 |
ц |
195 |
|
В |
247 |
М |
237 |
Ч |
254 |
в |
215 |
м |
205 |
ч |
222 |
|
Г |
231 |
Н |
238 |
Ш |
251 |
г |
199 |
н |
206 |
ш |
219 |
|
Д |
228 |
О |
239 |
Щ |
253 |
д |
196 |
о |
207 |
щ |
221 |
|
Е |
229 |
П |
240 |
Ъ |
255 |
е |
197 |
п |
208 |
ъ |
223 |
|
Е |
179 |
Р |
242 |
Ы |
249 |
ё |
163 |
р |
210 |
ы |
217 |
|
Ж |
246 |
С |
243 |
Ь |
248 |
ж |
214 |
с |
211 |
ь |
216 |
|
З |
250 |
Т |
244 |
Э |
252 |
з |
218 |
т |
212 |
э |
220 |
|
И |
233 |
У |
245 |
Ю |
224 |
и |
201 |
у |
213 |
ю |
192 |
|
Й |
234 |
Ф |
230 |
Я |
241 |
й |
202 |
ф |
198 |
я |
209 |
