- •Ю никод
- •Предпосылки создания и развитие Юникода
- •Юникод и utf
- •Кодирование целых чисел Прямой код
- •Код со сдвигом
- •Дополнительный код (дополнение до единицы)
- •Дополнительный код (дополнение до двух)
- •Арифметические действия над целыми числами
- •Сложение и вычитание
- •Сложение и вычитание чисел со знаком в обратном коде
- •Сложение и вычитание чисел со знаком в дополнительном коде
- •Умножение и деление
- •Ошибки при выполнении арифметических операций
Основы информатики. Лк4. Юникод и кодирование целых чисел
Содержание
ЮНИКОД 1
Предпосылки создания и развитие Юникода 1
Юникод и UTF 2
UTF-8 2
UTF-16 (или, что почти одно и то же — UCS-2) 3
UTF-32 (или, что почти одно и то же — UCS-4) 3
BOM 3
Кодирование целых чисел 4
Прямой код 4
Дополнительный код (дополнение до двух) 5
Арифметические действия над целыми числами 5
Сложение и вычитание 6
Сложение и вычитание чисел со знаком в обратном коде 6
Сложение и вычитание чисел со знаком в дополнительном коде 6
Умножение и деление 7
Ошибки при выполнении арифметических операций 7
Ю никод
Юнико́д или Унико́д (англ. Unicode) — стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков.
Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.). Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей: в документах Unicode могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы, при этом становится ненужным переключение кодовых страниц.
Стандарт состоит из двух основных разделов: универсальный набор символов (англ. UCS, universal character set) и семейство кодировок (англ. UTF, Unicode transformation format). Универсальный набор символов задаёт однозначное соответствие символов кодам — элементам кодового пространства, представляющим неотрицательные целые числа. Семейство кодировок определяет машинное представление последовательности кодов UCS.
Для обозначения символов Unicode используется запись вида «U+xxxx» (для кодов 0…FFFF), или «U+xxxxx» (для кодов 10000…FFFFF), или «U+xxxxxx» (для кодов 100000…10FFFF), где x — шестнадцатеричная цифра. Например, символ «я» (U+044F) имеет код 044F16 = 110310.
Предпосылки создания и развитие Юникода
К концу 1980-х годов стандартом стали 8-битные символы, при этом существовало множество разных 8-битных кодировок, и постоянно появлялись всё новые. Это объяснялось как постоянным расширением круга поддерживаемых языков, так и стремлением создать кодировку, частично совместимую с какой-нибудь другой (характерный пример — появление альтернативной кодировки для русского языка, обусловленное эксплуатацией западных программ, созданных для кодировки CP437). В результате появилось несколько проблем:
Проблема «кракозябр» (отображения документов в неправильной кодировке): её можно было решить либо последовательным внедрением методов указания используемой кодировки, либо внедрением единой для всех кодировки.
Проблема ограниченности набора символов: её можно было решить либо переключением шрифтов внутри документа, либо внедрением «широкой» кодировки. Переключение шрифтов издавна практиковалось в текстовых процессорах, причём часто использовались шрифты с нестандартной кодировкой. В итоге при попытке перенести документ в другую систему все нестандартные символы превращались в кракозябры.
Проблема преобразования одной кодировки в другую: её можно было решить либо составлением таблиц перекодировки для каждой пары кодировок, либо использованием промежуточного преобразования в третью кодировку, включающую все символы всех кодировок.
Проблема дублирования шрифтов: традиционно для каждой кодировки делался свой шрифт, даже если эти кодировки частично (или полностью) совпадали по набору символов: эту проблему можно было решить, делая «большие» шрифты, из которых потом выбираются нужные для данной кодировки символы — однако это требует создания единого реестра символов, чтобы определять, чему что соответствует.
Наиболее удобным представлялось создание единой «широкой» кодировки. Она единообразно решала все указанные проблемы. Кодировки с переменной длиной, широко использующиеся в Восточной Азии, были признаны слишком сложными в использовании, поэтому было решено использовать коды фиксированной ширины. Использование 32-битных символов казалось слишком расточительным, поэтому было решено использовать 16-битные.
Таким образом, первая версия Юникода представляла собой кодировку с фиксированным размером символа в 16 бит, то есть общее число кодов было 216 (65 536). Отсюда происходит практика обозначения символов четырьмя шестнадцатеричными цифрами (например, U+04F0).
