Представление текстовых данных
Любой текст состоит из последовательности символов. Символами могут быть буквы, цифры, знаки препинания, знаки математических действий, круглые и квадратные скобки и т.д. Особо обратим внимание на символ “пробел”, который используется для разделения слов и предложений между собой. Хотя на бумаге или экране дисплея “про-бел” — это пустое, свободное место, этот символ ничем не “хуже” любого другого символа. На клавиатуре компьютера или пишущей машинки символу “пробел” соответствует специальная клавиша.
Текстовая информация, как и любая другая, хранится в памяти компьютера в двоичном виде. Для этого каждому символу ставится в соответствие некоторое неотрицательное число, называемое кодом символа, и это число записыва-ется в память ЭВМ в двоичном виде. Конкретное соответствие между символами и их кодами называется системой кодировки.
В современных ЭВМ, в зависимости от типа операционной системы и конкретных прикладных программ, используются 8-разрядные и 16-разрядные (Windows 95, 98, NT) коды символов. Использование 8-разрядных кодов позволяет закодировать 256 различных знаков, этого вполне достаточно для представления многих символов, используемых на практике. При такой кодировке для кода символа достаточно выделить в памяти один байт. Так и делают: каждый символ представляют своим кодом, который записывают в один байт памяти.
Таблица 1
Таблица символов кода ASCII
Старшая цифра Младшая цифра | ||||||||
NUL | DLE | SP | @ | P | ` | p | ||
SOH | DC1 | ! | A | Q | a | q | ||
STX | DC2 | " | B | R | b | r | ||
ETX | DC3 | # | C | S | с | s | ||
EOT | DC4 | $ | D | Т | d | t | ||
ENQ | МАК | % | E | U | e | u | ||
AСК | SYM | & | F | U | f | v | ||
BEL | ETB | ' | G | W | g | w | ||
BS | CAM | ( | H | X | h | x | ||
HT | ЕM | ) | I | Y | i | y | ||
А | LF | SUB | * | : | J | Z | j | z |
В | UT | ESC | + | ; | К | [ | k | { |
С | FF | FS | , | < | L | \ | l | | |
D | CR | GS | - | = | M | ] | m | } |
Е | SO | RS | > | N | ^ | n | ~ | |
F | SI | US | / | ? | O | _ | o | DEL |
В персональных компьютерах обычно используется система кодировки ASCII (American Standard Code for Information Interchange — американский стандартный код для обмена информации). Он введен в 1963 г. и ставит в соответствие каждому символу семиразрядный двоичный код. Легко определить, что в коде ASCII можно представить 128 символов.
ASCII-кодировка символов приведена в табл. 1. Элементами изображенной матрицы являются обозначения символов, а индексами — шестнадцатеричные цифры кодов символов. Для получения шестнадцатеричного кода символа необходимо к цифре-индексу, записанной в соответствующем столбце, приписать справа цифру-индекс, размещенную в соответствующей строке матрицы. Например, символ G имеет код 47Н (H- соответствует шестнадцатеричой системе). Из шестнадцатеричного кода легко получить двоичный код путем записи каждой шестнадцатеричной цифры в двоичной системе счисления (для нашего примера получим 1000111). Если требуется по двоичному коду определить представленный им символ, то следует свернуть этот код в шестнадцатеричное число, разбить его на цифры и найти обозначение символа на пересечении столбца и строки, индексами которых являются старшая и младшая шестнадцатеричные цифры кода соответственно.
ASCII содержит две группы символов:
1) прописные и строчные латинские буквы, цифры, а также специальные знаки, т.е. символы пишущей машинки;
2) управляющие символы, используемые в коммуникационных протоколах, в частности, для передачи команд ПУ.
Символы пишущей машинки имеют коды 20Н — 7ЕН, а управляющие символы — ООН — 1FH и 7FH.
Относительно символов пишущей машинки специальные пояснения не требуются, метим только, что символ с кодом 2DH — это знак “минус”, а с кодом 5FH — подчеркивания. Символы с кодами 27Н и 60Н также различаются между собой: первый является апострофом, а второй — знаком тупого (обратного) ударения. Символ " (один символ!) называется кавычками, &; — амперсандом, # — знаком номера, ^ — стрелкой | — вертикальной чертой, ~ — знаком надчеркивания (тильдой), а @ — коммерческим "эт". Символ SP обозначает пробел (Space).
Управляющие символы стандартно интерпретируются следующим образом: (NULI) — пустой символ, не имеющий значения (может использоваться для задержек); (Start Of Heading) — начало заголовка (с него начинается передача блока данных);
В этой системе не предусмотрены коды для русского алфавита, поэтому в нашей стране используются варианты этой системы кодировки, в которые включают буквы русского алфавита. Чаще всего используется вариант, известный под названием “Альтернативная кодировка”.
Кодирование данных двоичным кодом
Для автоматизации работы с данными, относящимися к различным типам очень важно унифицировать их форму представления – для этого обычно используется приём кодирования, т.е. выражение данных одного типа через данные другого типа. Естественные человеческие языки – системы кодирования понятий для выражения мыслей посредством речи. К языкам близко примыкают азбуки – системы кодирования компонентов языка с помощью графических символов.
Своя системы существует и в вычислительной технике – она называется двоичным кодированием и основана на представлении данных последовательностью всего двух знаков: 0 и 1. Эти знаки называют двоичными цифрами, по-английски – binary digit или сокращённо bit (бит). Одним битом могут быть выражены два понятия: 0 или 1 (да или нет, чёрное или белое, истина или ложь и т.п.). Если количество битов увеличить до двух, то уже можно выразить четыре различных понятия. Тремя битами можно закодировать восемь различных значений.