- •«Разработка программ преобразования форматов двоичных данных и сортировок в машинных кодах микро-эвм см-1800 с помощью эмулятора на пк»
- •Задание
- •Содержание
- •Аналитическая часть
- •1.1 Двоично-десятичное кодирование
- •1.2 Операции двоично-десятичной арифметики
- •1.3 Кодирование текстовых данных
- •2.2 Распределение памяти и листинг программы с комментарием
- •2 Практическая разработка
- •2.1 Блок – схема алгоритма
- •2.3 Результаты тестирования программы
- •3 Описание использованных при проектировании средств вычислительной техники
1.3 Кодирование текстовых данных
Установив соответствие между символом используемого алфавита и определенным целым числом (например, порядковым), можно с помощью двоичного кода кодировать текстовую информацию.
Первоначально каждый компьютер имел свою систему кодирования (например, IBM (и позднее серия ЕС ЭВМ) использовала EBCDIC), что затрудняло обмен информацией между ними. Это привело к принятию единого на тот момент стандарта, в котором символы кодировались в 7 битах, что давало 128 доступных знаков. Из них 32 первых были управляющими – они не выводятся на экран и печать, но понимаются устройствами (например, BEL – звонок, LF – перевод строки, HT – табуляция).
В остальной части таблицы располагались специальные знаки, цифры, знаки препинания, малые и большие буквы английского алфавита). Это кодирование принято Институтом стандартизации США (ANSI - American National Standard Institute) и называется ASCII (American Standard Code for Information Interchange - стандартный код информационного обмена США). В системе ASCII закреплены две таблицы кодирования - базовая и расширенная. Базовая таблица закрепляет значения кодов от 0 до 127, а расширенная относится к символам с номерами от 128 до 255. Предполагалось помещение в расширенную часть национальных символов.
Кодировка ASCII приведена на рисунках ниже.
Рис.1 – кодировка ASCII (базовая и расширенная для cp866).
Для обработки информации на западе вполне хватало первой половины таблицы ACSII, однако была невозможна обработка кириллицы. В СССР был разработан код КОИ-7 (код обмена информацией, семизначный) и др. коды. Однако на PC утвердился ASCII, кириллица там размещалась по-разному, что привело к возникновению нескольких кодировок (т.н. основной, болгарской, альтернативной и пр.).
Дело усложняет еще и использование различных операционных систем. Исторически сложилось, что Windows внедрила стандарт cp1251, а мир Unix (и, в частности, Linux) использует КОИ-8 (создан на основе ГОСТ КОИ-8, обозначается koi8-r, кодовая страница 878). Есть еще и компьютеры с ОС Macintosh, где тоже своя кодировка кириллицы – Mac. Позднее на проблему национальных кодировок обратила внимание международная организация International Organization for Standartization, занимающаяся вопросами стандартизации. И опять же, вместо того чтобы за основу взять наиболее распространенную кодировку (на тот момент это была таблица Win), представители ISO выдумали свою (ISO 8859-5). Но практического применения она не получила. И хотя поддержка кодировки ISO есть во всех браузерах, наверное, не существует ни одного сайта, ее использующего.
Однако все эти кодировки были одноязыковыми: что делать, если издается научная книга, в которой цитируется старинный текст глаголицей или китайские иероглифы? С этой целью был разработан Юнико́д, или Унико́д (англ. Unicode) — стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков.
Для совместимости с ранее разработанными программами существуют варианты кодировки Unicode – UTF-8 (однобайтовая), UTF-16 (двухбайтовая, подварианты LE/BE), UTF-32 (четырехбайтовая, подварианты LE/BE).
Например, семейство ОС Windows NT работает в кодировке UTF-16LE, а UNIX-подобные операционные системы, в том числе GNU/Linux, BSD, Mac OS X, используют для представления Юникода кодировку UTF-8. Также в 16-битном представлении работает среда программирования Java.
В связи с изобилием систем кодирования текстовых данных, действующих в России, возникает задача межсистемного преобразования данных — это одна из распространенных задач информатики.
