на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

Про кодировки и Юникод

Вначале стоит разъяснить пару терминов. Кодовая страница — таблица заранее известного размера, каждой позиции (или коду) которой сопоставлен единственный символ или его отсутствие. Например, кодовая страница размерностью 256, где 71-й позиции соответствует буква «G». Кодировка — правило кодирования символа в числовое представление. Любая кодировка создается для определенной кодовой страницы. Для примера, символ «G» в кодировке Абрвал примет значение 71. Кстати, простейшие кодировки так и поступают — представляют символы их значениями в кодовых таблицах, ASCII тоже к таким относится.

Раньше для кодирования хватало всего 7 бит на символ. А что? достаточно для 128 различных знаков, вмещалось все необходимое тогдашним пользователям: английский алфавит, знаки препинания, цифры и некоторых спецсимволы. Основная англоязычная 7-битная кодировка с соответствующей ей кодовой страницей получили название ASCII (American Standard Code for Information Interchange), они же заложили основы на будущее. Позже, когда компьютеры распространились в неанглоговорящие страны, появилась нужда в национальных языках, здесь-то фундамент ASCII и пригодился. Компьютеры обрабатывают информацию на уровне байтов, а код ASCII занимает только 7 первых бит. Использование 8-го расширяло пространство до 256 мест без потери совместимости, а вместе с ней и поддержки английского языка, это было важно. На этом факте выстроено большинство неанглоязычных кодовых страниц и кодировок: нижние 128 позиций как у ASCII, а верхние 128 отведены для национальных нужд и кодировались со старшим битом. Однако, создание для каждого языка (иногда группы схожих языков) собственной страницы и кодировки привело к возникновению проблем с поддержкой такого хозяйства разработчиками операционных систем и программного обеспечения в целом.

Для выхода из ситуации организовали консорциум, разработавший и предложивший стандарт Юникода. В нем предполагалось объединить знаки всех языков мира в одной большой таблице. Кроме того, определялись кодировки. Сначала ребята посчитали, что 65 535 посадочных мест должно хватить всем, ввели UCS-2 — кодировку с фиксированной 16-битной длиной кодов. Но пришли азиаты с многотомными азбуками, и расчеты рухнули. Кодовую область увеличили вдвое, UCS-2 уже не смогла бы справиться, появилась 32-битная UCS-4. Ощутимыми преимуществами кодировок UCS являлись постоянная кратная двум длина кодов и простейший алгоритм кодирования, и то, и другое способствовало скорости обработки текса компьютером. Но при этом была и неоправданная, чересчур расточительная трата места: представьте, что в ASCII 00010101, то в UCS-2 00000000 00010101, а UCS-4 уже 00000000 00000000 00000000 00010101. С этим нужно было что-то делать.

Развитие Юникода повернуло в сторону кодировок с переменной длиной получаемых кодов. Представителями стали UTF-8, UTF-16 и UTF-32, последняя условно-досрочно, так как на данный момент она идентична UCS-4. Каждый символ в UTF-8 занимает от 8 до 32 бит, причем есть совместимость с ASCII. В UTF-16 16 или 32 бита, UTF-32 — 32 бита (если бы пространство Юникода расширили еще вдвое, то уже 32 или 64 бита), с ASCII эти две не дружат. Количество занимаемых байтов, зависит от позиции символа в таблице Юникода. Очевидно, наиболее практичная кодировка — UTF-8. Именно благодаря своей совместимости с ASCII, небольшой прожорливости до памяти и достаточно простым правилам кодирования, она является наиболее распространенной и перспективной кодировкой Юникода. Ну, а в завершение красивая схема преобразования кода символа в UTF-8: на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть картинку на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Картинка про на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

Источник

Разница между ASCII и Unicode

главное отличие между ACII и Unicode заключается в том, что ACII представляет строчные буквы (az), прописные буквы (AZ), цифры (0-9) и символы, такие как знаки препинания, а Unicode представляет букв

на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть картинку на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Картинка про на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

Содержание:

главное отличие между ASCII и Unicode заключается в том, что ASCII представляет строчные буквы (az), прописные буквы (AZ), цифры (0-9) и символы, такие как знаки препинания, а Unicode представляет буквы английского, арабского, греческого и т. д., математические символы, исторические сценарии и эмодзи широкий спектр символов, чем ASCII.

Ключевые области покрыты

1. Что такое ASCII
— определение, функциональность
2. Что такое Юникод
— определение, функциональность
3. Связь между ASCII и Unicode
— Схема ассоциации
4. Разница между ASCII и Unicode
— Сравнение основных различий

Основные условия

ASCII, Unicode, Компьютеры

на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть картинку на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Картинка про на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

Что такое ASCII

ASCII расшифровывается как Американский стандартный код для обмена информацией. Он использует цифры для представления текста. Цифры (1,2,3 и т. Д.), Буквы (a, b, c и т. Д.) И символы (!) Называются символами. Когда есть фрагмент текста, ASCII преобразует каждый символ в число. Этот набор чисел легче хранить в памяти компьютера. Проще говоря, присвоение номера символу называется кодированием.

Например, верхнему регистру «А» присваивается номер 65. Точно так же 65 относится к букве «А». Аналогично, каждый символ имеет номер в ASCII. Таблица ASCII содержит все символы с соответствующими номерами. ASCII использует 7 бит для представления символа. Таким образом, он составляет максимум 128 (2 7 ) персонажи.

на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть картинку на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Картинка про на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

Рисунок 1: Таблица ASCII

Недостатком ASCII является то, что он может представлять только 128 символов. Он не имеет представления для большинства математических и других символов.

Что такое Юникод

Юникод является альтернативой. Он поддерживается Консорциумом Юникод. Он охватывает широкий спектр персонажей.Он содержит представления для букв на таких языках, как английский, греческий, арабский и т. Д., Математические символы, эмодзи и многие другие.

на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть картинку на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Картинка про на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

Рисунок 2: Юникод

Отношения между ASCII и Unicode

Разница между ASCII и Unicode

Определение

Стенды для

ASCII расшифровывается как Американский стандартный код для обмена информацией. Unicode означает универсальный набор символов.

Вспомогательные персонажи

ASCII содержит представления для цифр, английских букв и других символов. Он поддерживает 128 символов. Юникод поддерживает широкий спектр символов. В этом основное отличие ASCII от Unicode.

Биты на символ

Кроме того, ASCII использует 7 бит для представления символа, тогда как Unicode использует 8, 16 или 32 бита, в зависимости от типа кодирования.

Требуемое пространство

Юникод требует больше места, чем ASCII.

Заключение

Unicode представляет большинство письменных языков в мире. ASCII имеет свой эквивалент в Unicode. Разница между ASCII и Unicode заключается в том, что ASCII представляет строчные буквы (az), прописные буквы (AZ), цифры (0-9) и символы, такие как знаки препинания, в то время как Unicode представляет буквы английского, арабского, греческого и т. Д. Математические символы, исторические сценарии, эмодзи, охватывающие широкий спектр символов, чем ASCII.

Ссылка:

Источник

Представление символов, таблицы кодировок

Содержание

Представление символов в вычислительных машинах [ править ]

В вычислительных машинах символы не могут храниться иначе, как в виде последовательностей бит (как и числа). Для передачи символа и его корректного отображения ему должна соответствовать уникальная последовательность нулей и единиц. Для этого были разработаны таблицы кодировок.

Таблицы кодировок [ править ]

На заре компьютерной эры на каждый символ было отведено по пять бит. Это было связано с малым количеством оперативной памяти на компьютерах тех лет. В эти [math]32[/math] символа входили только управляющие символы и строчные буквы английского алфавита.

С ростом производительности компьютеров стали появляться таблицы кодировок с большим количеством символов. Первой семибитной кодировкой стала ASCII7. В нее уже вошли прописные буквы английского алфавита, арабские цифры, знаки препинания. Затем на ее базе была разработана ASCII8, в которым уже стало возможным хранение [math]256[/math] символов: [math]128[/math] основных и еще столько же расширенных. Первая часть таблицы осталась без изменений, а вторая может иметь различные варианты (каждый имеет свой номер). Эта часть таблицы стала заполняться символами национальных алфавитов.

Но для многих языков (например, арабского, японского, китайского) [math]256[/math] символов недостаточно, поэтому развитие кодировок продолжалось, что привело к появлению UNICODE.

Кодировки стандарта ASCII [ править ]

Определение:
ASCII — таблицы кодировок, в которых содержатся основные символы (английский алфавит, цифры, знаки препинания, символы национальных алфавитов(свои для каждого региона), служебные символы) и длина кода каждого символа [math]n = 8[/math] бит.

Кодировки стандарта ASCII ( [math]8[/math] бит):

Структурные свойства таблицы [ править ]

Кодировки стандарта UNICODE [ править ]

Юникод или Уникод (англ. Unicode) — это промышленный стандарт обеспечивающий цифровое представление символов всех письменностей мира, и специальных символов.

Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.). Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей. Стандарт состоит из двух основных разделов: универсальный набор символов (англ. UCS, universal character set) и семейство кодировок (англ. UTF, Unicode transformation format). Универсальный набор символов задаёт однозначное соответствие символов кодам — элементам кодового пространства, представляющим неотрицательные целые числа.Семейство кодировок определяет машинное представление последовательности кодов UCS.

Коды в стандарте Unicode разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F. Часть кодов зарезервирована для использования в будущем.

Кодовое пространство [ править ]

Хотя формы записи UTF-8 и UTF-32 позволяют кодировать до [math]2^<31>[/math] [math](2\ 147\ 483\ 648)[/math] кодовых позиций, было принято решение использовать лишь [math]1\ 112\ 064[/math] для совместимости с UTF-16. Впрочем, даже и этого на текущий момент более чем достаточно — в версии 6.0 используется чуть менее [math]110\ 000[/math] кодовых позиций ( [math]109\ 242[/math] графических и [math]273[/math] прочих символов).

Кодовое пространство разбито на [math]17[/math] плоскостей (англ. planes) по [math]2^<16>[/math] [math](65\ 536)[/math] символов. Нулевая плоскость называется базовой, в ней расположены символы наиболее употребительных письменностей. Первая плоскость используется, в основном, для исторических письменностей, вторая — для для редко используемых иероглифов китайского письма, третья зарезервирована для архаичных китайских иероглифов. Плоскости [math]15[/math] и [math]16[/math] выделены для частного употребления.

Плоскости Юникода
ПлоскостьНазваниеДиапазон символов
Plane 0Basic multilingual plane (BMP)U+0000…U+​FFFF
Plane 1Supplementary multilingual plane (SMP)U+10000…U+​1FFFF
Plane 2Supplementary ideographic plane (SIP)U+20000…U+​2FFFF
Planes 3-13UnassignedU+30000…U+​DFFFF
Plane 14Supplement­ary special-purpose plane (SSP)U+E0000…U+​EFFFF
Planes 15-16Supplement­ary private use area (S PUA A/B)U+F0000…U+​10FFFF

Модифицирующие символы [ править ]

на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть картинку на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Картинка про на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

Графические символы в Юникоде делятся на протяжённые и непротяжённые. Непротяжённые символы при отображении не занимают дополнительного места в строке. К примеру, к ним относятся знак ударения. Протяжённые и непротяжённые символы имеют собственные коды, но последние не могут встречаться самостоятельно. Протяжённые символы называются базовыми (англ. base characters), а непротяженные — модифицирующими (англ. combining characters). Например символ «Й» (U+0419) может быть представлен в виде базового символа «И» (U+0418) и модифицирующего символа « ̆» (U+0306).

Способы представления [ править ]

Юникод имеет несколько форм представления (англ. Unicode Transformation Format, UTF): UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE). Была разработана также форма представления UTF-7 для передачи по семибитным каналам, но из-за несовместимости с ASCII она не получила распространения и не включена в стандарт.

UTF-8 [ править ]

Символы UTF-8 получаются из Unicode cледующим образом:

UnicodeUTF-8Представленные символы
0x00000000 — 0x0000007F0xxxxxxxASCII, в том числе английский алфавит, простейшие знаки препинания и арабские цифры
0x00000080 — 0x000007FF110xxxxx 10xxxxxxкириллица, расширенная латиница, арабский алфавит, армянский алфавит, греческий алфавит, еврейский алфавит и коптский алфавит; сирийское письмо, тана, нко; Международный фонетический алфавит; некоторые знаки препинания
0x00000800 — 0x0000FFFF1110xxxx 10xxxxxx 10xxxxxxвсе другие современные формы письменности, в том числе грузинский алфавит, индийское, китайское, корейское и японское письмо; сложные знаки препинания; математические и другие специальные символы
0x00010000 — 0x001FFFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxxмузыкальные символы, редкие китайские иероглифы, вымершие формы письменности
111111xxслужебные символы c, d, e, f

Несмотря на то, что UTF-8 позволяет указать один и тот же символ несколькими способами, только наиболее короткий из них правильный. Остальные формы, называемые overlong sequence, отвергаются по соображениям безопасности.

Принцип кодирования [ править ]

Правила записи кода одного символа в UTF-8 [ править ]

1. Если размер символа в кодировке UTF-8 = [math]1[/math] байт

Код имеет вид (0aaa aaaa), где «0» — просто ноль, остальные биты «a» — это код символа в кодировке ASCII;

2. Если размер символа в кодировке в UTF-8 [math]\gt 1[/math] байт (то есть от [math]2[/math] до [math]6[/math] ):

2.1 Первый байт содержит количество байт символа, закодированное в единичной системе счисления; 2.2 «0» — бит терминатор, означающий завершение кода размера 2.3 далее идут значащие байты кода, которые имеют вид (10xx xxxx), где «10» — биты признака продолжения, а «x» — значащие биты.

В общем случае варианты представления одного символа в кодировке UTF-8 выглядят так:

Определение длины кода в UTF-8 [ править ]
Количество байт UTF-8Количество значащих бит
[math]1[/math][math]7[/math]
[math]2[/math][math]11[/math]
[math]3[/math][math]16[/math]
[math]4[/math][math]21[/math]
[math]5[/math][math]26[/math]
[math]6[/math][math]31[/math]

[math]C = 7[/math] при [math]n=1[/math]

[math]C = n\cdot5+1[/math] при [math]n\gt 1[/math]

UTF-16 [ править ]

UTF-16LE и UTF-16BE [ править ]

Один символ кодировки UTF-16 представлен последовательностью двух байт или двух пар байт. Который из двух байт в словах идёт впереди, старший или младший, зависит от порядка байт. Подробнее об этом будет сказано ниже.

UTF-32 [ править ]

UTF-32 — один из способов кодирования символов из Юникод, использующий для кодирования любого символа ровно [math]32[/math] бита. Остальные кодировки, UTF-8 и UTF-16, используют для представления символов переменное число байт. Символ UTF-32 является прямым представлением его кодовой позиции (англ. code point).

Главный недостаток UTF-32 — это неэффективное использование пространства, так как для хранения символа используется четыре байта. Символы, лежащие за пределами нулевой (базовой) плоскости кодового пространства редко используются в большинстве текстов. Поэтому удвоение, в сравнении с UTF-16, занимаемого строками в UTF-32 пространства не оправдано.

Порядок байт [ править ]

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

[math]M = \sum_^A_i\cdot 256^i=A_0\cdot 256^0+A_1\cdot 256^1+A_2\cdot 256^2+\dots+A_n\cdot 256^n.[/math]

Варианты записи [ править ]

Порядок от старшего к младшему [ править ]

В этом же виде (используя представление в десятичной системе счисления) записываются числа индийско-арабскими цифрами в письменностях с порядком знаков слева направо (латиница, кириллица). Для письменностей с обратным порядком (арабская) та же запись числа воспринимается как «от младшего к старшему».

Порядок байт от старшего к младшему применяется во многих форматах файлов — например, PNG, FLV, EBML.

Порядок от младшего к старшему [ править ]

В противоположность порядку big-endian, соглашение little-endian поддерживают меньше кросс-платформенных протоколов и форматов данных; существенные исключения: USB, конфигурация PCI, таблица разделов GUID, рекомендации FidoNet.

Переключаемый порядок [ править ]

Многие процессоры могут работать и в порядке от младшего к старшему, и в обратном, например, ARM, PowerPC (но не PowerPC 970), DEC Alpha, MIPS, PA-RISC и IA-64. Обычно порядок байт выбирается программно во время инициализации операционной системы, но может быть выбран и аппаратно перемычками на материнской плате. В этом случае правильнее говорить о порядке байт операционной системы. Переключаемый порядок байт иногда называют англ. bi-endian.

Смешанный порядок [ править ]

Смешанный порядок байт (англ. middle-endian) иногда используется при работе с числами, длина которых превышает машинное слово. Число представляется последовательностью машинных слов, которые записываются в формате, естественном для данной архитектуры, но сами слова следуют в обратном порядке.

В процессорах VAX и ARM используется смешанное представление для длинных вещественных чисел.

Различия [ править ]

на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть картинку на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Картинка про на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

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

Маркер последовательности байт [ править ]

Для определения формата представления Юникода в начало текстового файла записывается сигнатура — символ U+FEFF (неразрывный пробел с нулевой шириной), также именуемый маркером последовательности байт (англ. byte order mark (BOM)). Это позволяет различать UTF-16LE и UTF-16BE, поскольку символа U+FFFE не существует.

на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть картинку на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Картинка про на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

Представление BOM в кодировках

КодированиеПредставление (Шестнадцатеричное)
UTF-8EF BB BF
UTF-16 (BE)FE FF
UTF-16 (LE)FF FE
UTF-32 (BE)00 00 FE FF
UTF-32 (LE)FF FE 00 00

В кодировке UTF-8, наличие BOM не является существенным, поскольку, нет альтернативной последовательности байт. Когда BOM используется на страницах или редакторах для контента закодированного в UTF-8, иногда он может представить пробелы или короткие последовательности символов, имеющие странный вид (такие как ). Именно поэтому, при наличии выбора, для совместимости, как правило, лучше упустить BOM в UTF-8 контенте.Однако BOM могут еще встречаться в тексте закодированном в UTF-8, как побочный продукт перекодирования или потому, что он был добавлен редактором. В этом случае BOM часто называют подписью UTF-8.

Когда символ закодирован в UTF-16, его [math]2[/math] или [math]4[/math] байта можно упорядочить двумя разными способами (little-endian или big-endian). Изображение справа показывает это. Byte order mark указывает, какой порядок используется, так что приложения могут немедленно расшифровать контент. UTF-16 контент должен всегда начинатся с BOM.

BOM также используется для текста обозначенного как UTF-32. Аналогично UTF-16 существует два варианта четырёхбайтной кодировки — UTF-32BE и UTF-32LE. К сожалению, этот способ не позволяет надёжно различать UTF-16LE и UTF-32LE, поскольку символ U+0000 допускается Юникодом

Проблемы Юникода [ править ]

В Юникоде английское «a» и польское «a» — один и тот же символ. Точно так же одним символом (но отличающимся от «a» латинского) считаются русское «а» и сербское «а». Такой принцип кодирования не универсален; по-видимому, решения «на все случаи жизни» вообще не может существовать.

Примеры [ править ]

Источник

Что такое кодировки?

Компьютеры постоянно работают с текстами: это ленты новостных сайтов, фондовые биржи, сообщения в социальных сетях и мессенджерах, банковские приложения и многое другое. Сегодня мы не можем представить жизнь без передачи информации. Но так было не всегда. Компьютеры научились работать с текстом благодаря появлению кодировок. Кодировки прошли большой путь от таблиц символов, созданных отдельно для каждого компьютера, до единой кодировки, принятой во всём мире.

Сейчас Unicode — это основной стандарт кодирования символов, включающий в себя знаки почти всех письменных языков мира. Unicode применяется везде, где есть текст. Информация на страницах в социальных сетях, записи в базах данных, компьютерные программы и мобильные приложения — всё это работает с использованием Unicode.

В этом гайде мы рассмотрим, как появился Unicode и какие проблемы он решает. Узнаем, как хранилась и передавалась информация до введения единого стандарта кодирования символов, а также рассмотрим примеры кодировок, основанных на Unicode.

Предпосылки появления кодировок

Исторически компьютер создавался как машина для ускорения и автоматизации вычислений. Само слово computer с английского можно перевести как вычислитель, а в 20 веке в СССР, до распространения термина компьютер, использовалась аббревиатура ЭВМ — электронно вычислительная машина.

Всё, чем компьютеры оперировали — числа. Основным заказчиком и драйвером появления первых моделей были оборонные предприятия. На компьютерах проводили расчёты параметров полёта баллистических ракет, самолётов, спутников. В 1950-е годы вычислительные мощности компьютеров стали использовать для:

Компьютеры и числа

Цели, для которых разрабатывались компьютеры, привели к появлению архитектуры, предназначенной для работы с числами. Они хранятся в компьютере следующим образом:

на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть картинку на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Картинка про на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

В конце 1950-х годов происходит замена ламп накаливания на полупроводниковые элементы (транзисторы и диоды). Внедрение новой технологии позволило уменьшить размеры компьютеров, увеличить скорость работы и надёжность вычислений, а также повлияло на конечную стоимость. Если первые компьютеры были дорогостоящими штучными проектами, которые могли себе позволить только государства или крупные компании, то с применением полупроводников начали появляться серийные компьютеры, пусть даже и не персональные.

Компьютеры и символы

Постепенно компьютеры начинают применяться для решения не только вычислительных или математических задач. Возникает необходимость обработки текстовой информации, но с буквами и другими символами ситуация обстоит сложнее, чем с числами. Символы — это визуальный объект. Даже одна и та же буква «а» может быть представлена двумя различными символами «а» и «А» в зависимости от регистра.

Также число «один» можно представить в виде различных символов. Это может быть арабская цифра 1 или римская цифра I. Значение числа не меняется, но символы используются разные.

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

Правила преобразования символов и чисел хранились в виде таблицы символов (англ. charset). В соответствии с такой таблицей для каждого компьютера конструировали и своё уникальное устройство ввода/вывода информации (например, клавиатура и принтер).

на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть картинку на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Картинка про на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

Распространение компьютеров

В начале 1960-х годов компьютеры были несовместимы друг с другом даже в рамках одной компании-производителя. Например, в компании IBM насчитывалось около 20 конструкторских бюро, и каждое разрабатывало свою собственную модель. Такие компьютеры не были универсальными, они создавались для решения конкретных задач. Для каждой решаемой задачи формировалась необходимая таблица символов, и проектировались устройства ввода/вывода информации.

В этот период начинают формироваться сети, соединяющие в себе несколько компьютеров. Так, в 1958 году создали систему SAGE (Semi-Automatic Ground Environment), объединившую радарные станций США и Канады в первую крупномасштабную компьютерную сеть. При этом, чтобы результаты вычислений одних компьютеров можно было использовать на других компьютерах сети, они должны были обладать одинаковыми таблицами символов.

В 1962 году компания IBM формирует два главных принципа для развития собственной линейки компьютеров:

Так в 1965 году появились компьютеры IBM System/360. Это была линейка из шести моделей, состоящих из совместимых модулей. Модели различались по производительности и стоимости, что позволило заказчикам гибко подходить к выбору компьютера. Модульность систем привела к появлению новой отрасли — производству совместимых с System/360 вычислительных модулей. У компаний не было необходимости производить компьютер целиком, они могли выходить на рынок с отдельными совместимыми модулями. Всё это привело к ещё большему распространению компьютеров.

ASCII как первый стандарт кодирования информации

Телетайп и терминал

Параллельно с этим развивались телетайпы. Телетайп — это система передачи текстовой информации на расстоянии. Два принтера и две клавиатуры (на самом деле электромеханические печатные машинки) попарно соединялись друг с другом проводами. Текст, набранный на клавиатуре у первого пользователя, печатается на принтере у второго пользователя и наоборот. Таким образом, например, была организована «горячая линия» между президентом США и руководством СССР вплоть до начала 1970-х годов.

Телетайпы также преобразуют текстовую информацию в некоторые сигналы, которые передаются по проводам. При этом не всегда используется бинарный код, например, в азбуке Морзе используются 3 символа — точка, тире и пауза. Для телетайпов необходимы таблицы символов, соответствие в которых строится между символами и сигналами в проводах. При этом для каждого телетайпа (пары, соединённых телетайпов) таблицы символов могли быть свои, исходя из задач, которые они решали. Отличаться, например, мог язык, а значит и сам набор символов, который отправлялся с помощью устройства. Для оптимизации работы телетайпа самые популярные (часто встречающиеся) символы кодировались наиболее коротким набором сигналов, а значит и в рамках одного языка, набор символов мог быть разным.

На основе телетайпов разработали терминалы доступа к компьютерам. Такой телетайп отправлял сообщения не второму пользователю, а информация вводилась на некоторый удалённый компьютер, который после обработки указанных команд, возвращал результат в виде ответного сообщения. Это нововведение позволило использовать тогда ещё очень дорогие вычислительные мощности компьютеров, не имея физического доступа к самому компьютеру. Например, компьютер мог размещаться в отдельном вычислительном центре корпорации или института, а сотрудники из других филиалов или городов получали доступ к вычислительным мощностями компьютера посредством установленных у них терминалов.

ASCII

Повсеместное распространение компьютеров и средств обмена текстовой информацией потребовало разработки единого стандарта кодирования для передачи и хранения информации. Такой стандарт разработали в США в 1963 году. Таблицу из 128 символов назвали ASCII — American standard code for information interchange (Американский стандарт кодов для обмена информацией).

на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть картинку на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Картинка про на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

Первые 32 символа в ASCII являются управляющими. Они использовались для того, чтобы, например, управлять печатающим устройством телетайпа и получать некоторые составные символы. Например:

Введение управляющих символов позволяло получать новые символы как комбинацию существующих, не вводя дополнительные таблицы символов.

Однако введение стандарта ASCII решило вопрос только в англоговорящих странах. В странах с другой письменностью, например, с кириллической в СССР, проблема оставалась.

Кодировки для других языков

В течение более чем 20 лет вопрос решали введением собственных локальных стандартов, например, в СССР на основе таблицы ASCII разработали собственные варианты кодировок КОИ 7 и КОИ 8, где 7 и 8 указывают на количество бит, необходимых для кодирования одного символа, а КОИ расшифровывается как Коды Обмена Информацией.

С дальнейшим развитием систем начали использовать восьмибитные кодировки. Это позволило использовать наборы, содержащие по 256 символов. Достаточно распространён был подход, при котором первые 128 символов брали из стандарта ASCII, а оставшиеся 128 дополнялись собственными символами. Такое решение, в частности, было использовано в кодировке KOI 8.

Однако единым стандартом указанные кодировки так и не стали. Например, в MS-DOS для русских локализаций использовалась кодировка cp866, а далее в среде MS Windows стали использоваться кодировки cp1251. Для греческого языка применялись кодировки cp851 и cp1253. В результате документы, подготовленные с использованием старой кодировки, становились нечитаемыми на новых.

Свои кодировки необходимы и для других стран с уникальным набором символов. Это приводило к путанице и сложностям в обмене информацией. Ниже приведён пример текста, который написали в кодировке KOI8-R, а читают в cp851.

на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Смотреть картинку на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Картинка про на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode. Фото на каком уровне обеспечивает кодирование информации с использованием кодировок ascii или unicode

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

При этом компьютерная память была дорогой, а связь между компьютерами медленной. Поэтому выгоднее было использовать кодировки, в которых размер в битах каждого символа был небольшим. Таблица символов состоит из 256 символов. Это значит, что нам достаточно 8 бит для кодирования любого из них (2^8 = 256).

Переход к Unicode

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

В результате в октябре 1991 года появилась первая версия одной общей таблицы символов, названной Unicode. Она включала в себя на тот момент 7161 различный символ из 24 письменностей мира.

В Unicode постепенно добавлялись новые языки и символы. Например, в версию 1.0.1 в середине 1992 года добавили более 20 000 идеограмм китайского, японского и корейского языков. В актуальной на текущий момент версии содержится уже более 143 000 символов.

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

Unicode можно себе представить как огромную таблицу символов. В памяти компьютера записываются не сами символы, а номера из таблицы. Записывать их можно разными способами. Именно для этого на основе Unicode разработаны несколько кодировок, которые отличаются способом записи номера символа Unicode в виде набора байт. Они называются UTF — Unicode Transformation Format. Есть кодировки постоянной длины, например, UTF-32, в которой номер любого символа из таблицы Unicode занимает ровно 4 байта. Однако наибольшую популярность получила UTF-8 — кодировка с переменным числом байт. Она позволяет кодировать символы так, что наиболее распространённые символы занимают 1-2 байта, и только редко встречающиеся символы могут использовать по 4 байта. Например, все символы таблицы ASCII занимают ровно по одному байту, поэтому текст, написанный на английском языке с использованием кодировки UTF-8, будет занимать столько же места, как и текст, написанный с использованием таблицы символов ASCII.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *