Российский государственный гуманитарный университет
Опубликован: 13.07.2022 | Доступ: свободный | Студентов: 258 / 9 | Длительность: 11:54:00
Специальности: Программист
Лекция 2:

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

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Порядок нумерации байт

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

Пример 20. Число 2,3 в типе данных float (см. пример 15) представляется в виде 40133333 (hex), если используется порядок от старшего к младшему, и в виде 33331340 (hex), для порядка от младшего к старшему.

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

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

Текст - это последовательность символов. Каждый символ кодируется целым числом, поэтому текст представляется в виде набора чисел - кодов символов. Для кодирования символов и их декодирования, т. е. восстановления символов по кодам, применяются таблицы символов.

Кодовые таблицы символов, которые используются в вычислительных устройствах, подчиняются международным стандартам. В основе кодовых таблиц лежит таблица символов ASCII (American Standard Code for Information Interchange), которую ввел Американский государственный институт по стандартизации (ANSI - American National Standard Institute) в 1963 г.

Система кодирования ASCII

Изначально для кодирования символа использовалось 7 разрядов, так что можно было закодировать 128 различных символов. Потом стали использовать 8 разрядов, с помощью которых можно закодировать 256 символов. В системе ASCII используются две таблицы кодирования: базовая, в которой для кодирования символов используются десятичные коды от 0 до 127, и расширенная - с кодами от 128 до 255.

Первые 32 кода (от 0 до 31) базовой таблицы представляют непечатные символы - управляющие коды. Остальные коды представляют буквы английского алфавита, цифры, знаки препинания, основные математические символы и некоторые вспомогательные символы.

В таблице 2.6 представлены печатные символы (Char) базовой таблицы ASCII вместе с их десятичными (Dec) и 16-ричными (Hex) кодами, от 20 (hex) до 7f (hex) включительно.

Изображаемые символы имеют коды от 21 (hex) до 7e (hex). Код 20 (hex) представляет операцию перемещения курсора на 1 позицию вправо, или пробельный символ. Код 7f (hex) соответствует операции удаления предыдущего символа.

Таблица 2.6. Базовая таблица SCII, десятичные коды 32 - 127
Dec Hex Char Dec Hex Char Dec Hex Char Dec Hex Char
32 20 Space 56 38 8 80 50 P 104 69 h
33 21 ! 57 39 9 81 51 Q 105 6a i
34 32 " 58 3a : 82 52 R 106 6a j
35 23 # 59 3b ; 83 53 S 107 6b k
36 24 $ 60 3c < 84 54 T 108 6c l
37 25 % 61 3d = 85 55 U 109 6d m
38 26 & 62 3e > 86 56 V 110 6e n
39 27 ' 63 3f ? 87 57 W 111 6f o
40 28 ( 64 40 @ 88 58 X 112 70 p
41 29 ) 65 41 A 89 59 Y 113 71 q
42 2a * 66 42 B 90 5a Z 114 72 r
43 2b + 67 43 C 91 5b [ 115 73 s
44 2c , 68 44 D 92 5c \ 116 74 t
45 2d - 69 45 E 93 5d ] 117 75 u
46 2e . 70 46 F 94 5e ^ 118 76 v
47 2f / 71 47 G 95 5f _ 119 77 w
48 30 0 72 48 H 96 60 120 78 x
49 31 1 73 49 I 97 61 a 121 79 y
50 32 2 74 4a J 98 62 b 122 7a z
51 33 3 75 4b K 99 63 c 123 7b {
52 34 4 76 4c L 100 64 d 124 7c |
53 35 5 77 4d M 101 65 e 125 7d }
54 36 6 78 4e N 102 66 f 126 7e \backsim
55 37 7 79 4f O 103 67 g 127 7f Del

Пример 21. Слово "Science" в системе ASCII кодируется следующим образом:

83 99 105 101 110 99 101 (decimal);
53 63 69 65 6e 63 65 (hex);
01010011011000110110100101100101011011100110001101100101 (двоичный код).

Пример 22. Найдем текст, который представляется двоичным кодом 0111100000100000001010110010000001111001 в системе кодирования ASCII. Разобьем код на группы по 8 знаков. Имеем:

0111 1000	0010 0000	0010 1011	0010 0000	0111 1001,

или 78 20 2b 20 79 (hex). По табл. 2.6 получаем, что код представляет выражение x + y.

Коды от 128 до 255 расширенной таблицы ASCII предназначены для букв национальных алфавитов и других знаков.

Кодирование кириллицы

Для кодирования букв русского алфавита было создано несколько кодовых таблиц. Широко распространенными системами кодирования кириллицы являются КОИ-8, Windows-1251 и CP-866 (фрагменты этих таблиц с десятичными кодами символов приведены ниже). Первоначально была введена система кодирования КОИ-7 (код обмена информации, 7-битовый), затем для кодирования символов стала использоваться расширенная таблица ASCII.

В кодовой таблице КОИ-8 (международное название - KOI8-R) буквы русского алфавита располагаются таким образом, чтобы их позиции соответствовали английским фонетическим аналогам базовой таблицы ( табл. 2.7).

Таблица 2.7. Таблица КОИ-8. Буквы русского алфавита, кроме Ё (179) и ё (163)
Ю а б ц д е ф г х и й к л м н о
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
П я р с т у ж в ь ы з ш э щ ч ъ
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
Ю А Б Ц Д Е Ф Г Х И Й К Л М Н О
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
П Я Р С Т У Ж В Ь Ы З Ш Э Щ Ч Ъ
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

В отличие от таблиц Windows-1251 и CP-866, коды строчных букв в таблице КОИ-8 предшествуют кодам прописных.

Кодовая таблица Windows-1251, или CP-1251 (от англ. code page - кодовая страница) разработана корпорацией Microsoft (табл. 2.8).

Таблица 2.8. Таблица CP-1251. Буквы русского алфавита, кроме Ё (168) и ё (184)
А Б В Г Д Е Ж З И Й К Л М Н О П
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
А б в г д е ж з и й к л м н о п
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
Р с т у ф х ц ч ш щ ъ ы ь э ю я
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
< Лекция 1 || Лекция 2: 123456 || Лекция 3 >