Найти в Дзене
Симпличные условия

Как текст хранится в компьютере? Часть 1

Здравствуй и хорошей, товарищ!
На связи Тюрин Роман, это канал Симпличные условия, где о сложном говорится просто. Я решил записать цикл статей, который расскажет тебе о форматах текстовых файлов. Их много, они для чего-то существуют, при скачивании вызывают у нас ступор: какой же выбрать? Но прежде чем завести об этом разговор, давай начнем с малого: как текст вообще хранится в компьютере? Текст не получается передавать или сохранять в виде текста. Мы еще не научили компьютеры так делать. Изобретая азбуку Морзе, создатель ее четко понимал: радиоволны не смогут передавать буквы. Поэтому каждой букве был присвоен какой-то код. К примеру, букве "S" присваивался код: три коротких сигнала. Букве "O" - три длинных. И вот, теперь по всему миру известно, что три коротких, три длинных, три коротких - это сигнал бедствия, именуемый "SOS". Одна буква алфавита представлена последовательностью бит. Бит - это сигнал или символ, который может быть только одного из двух значений: 1 или 0, точка или

Здравствуй и хорошей, товарищ!
На связи Тюрин Роман, это канал Симпличные условия, где о сложном говорится просто.

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

Фраза "Текстовая информация" в виде двоичного кода передается на жесткий диск.
Фраза "Текстовая информация" в виде двоичного кода передается на жесткий диск.

Текст не получается передавать или сохранять в виде текста. Мы еще не научили компьютеры так делать. Изобретая азбуку Морзе, создатель ее четко понимал: радиоволны не смогут передавать буквы. Поэтому каждой букве был присвоен какой-то код. К примеру, букве "S" присваивался код: три коротких сигнала. Букве "O" - три длинных. И вот, теперь по всему миру известно, что три коротких, три длинных, три коротких - это сигнал бедствия, именуемый "SOS".

SOS, написанный кодами из таблицы Морзе.
SOS, написанный кодами из таблицы Морзе.

Одна буква алфавита представлена последовательностью бит. Бит - это сигнал или символ, который может быть только одного из двух значений: 1 или 0, точка или тире, длинный или короткий. Если глянуть на расшифровку алфавита Морзе, то можно заметить, что они написаны с использованием бит.

-4

Обрати внимание, что длина кодировки у каждой буквы разная. Это затрудняет передачу данных, поэтому как думаешь: что придумали дальше? Правильный ответ - дать каждому символу фиксированное количество знаков. Так в 1874 году появился на свет код Бодо́. Каждый символ в алфавите представлен серией из 5 бит.

Источник: Википедия.
Источник: Википедия.

Попробуй составить сообщение SOS, на это уйдет 15 бит. Код Бодо стал известен как Международный телеграфный алфавит №1(International Telegraph Alphabet) - или сокращенно ITA1. Люди, магазины, издательства стали общаться благодаря ITA1. Чтобы печатать, у них было 5 клавиш, а сообщение затем надо было расшифровывать.

Лень двигает прогресс! Гораздо удобнее отправлять сообщения, написанные на пишущей машинке, а не в виде кода. На смену пришел ITA2 -Международный телеграфный алфавит №2 . Один из активных пользователей пишущей машинки и телеграфа, Дональд Мюррей доработал алфавит Бодо.

Дональду Мюррею пришла гениальная мысль
Дональду Мюррею пришла гениальная мысль

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

Клавиатура телетайпа с кодом Мюррея
Клавиатура телетайпа с кодом Мюррея

Как видишь, одна клавиша обозначает два символа. Служебные FIGS и LTRS при их удерживании позволяли понять, с цифрами или буквами мы имеем дело. LINE FEED - перевод строки, известный нам как Enter. Чуть ниже - SPACE BAR - пробел (не уместился на фото). Сделал Мюррей это в 1901 году, а крупная финансовая компания Western Union (ты про нее можешь услышать даже сегодня) использовала его алфавит аж до 1950-х. При нажатии на клавишу, прокалывалась длинная лента - перфокарта. Ее применяли, когда не изобрели еще жестких дисков.

Бумажная лента с отверстиями, представляющая «Код Бодо – Мюррея». Обрати внимание на полностью перфорированные столбцы кодов «Удалить/выбрать буквы» в начале сообщения (справа), которые использовались для простого разделения полосы между отдельными сообщениями.
Бумажная лента с отверстиями, представляющая «Код Бодо – Мюррея». Обрати внимание на полностью перфорированные столбцы кодов «Удалить/выбрать буквы» в начале сообщения (справа), которые использовались для простого разделения полосы между отдельными сообщениями.

В СССР ITA2 утвердили под названием МТК-2 (Международный телеграфный код), просто внеся кириллицу в качестве символов. Ограниченное количество бит не позволяло сделать это полностью, поэтому советские люди придумали хитрость. Когда пишешь "РУС", то следующие символы надо расшифровывать по таблице наших символов, когда "ЛАТ", то следующие символы - латиница.

Стандарт МТК-2.
Стандарт МТК-2.

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

И что, как ты думаешь, они придумали? Увеличить количество бит на символ, конечно же.

-10

Количество вариантов рассчитывается по формуле 2 в степени n, где n - это количество бит на один символ. То есть в 5-битовой кодировке у нас было 2⁵ = 32 варианта. И все вынуждены были изощряться в том, как же им писать, а особенно писать на нескольких языках. Одному коду соответствовало несколько букв или символов. Когда бит стало 7 на один символ, то вариантов стало 2⁷ = 128 .

Это позволило в 1963 году ввести "American standard code for information interchange" или сокращенно ASCII (читается как "áски"). Символы в кодировке делились на печатные, коих было 95, и управляющие - их 33. К первым относились цифры от 0 до 9, строчные буквы от a до z, прописные буквы от A до Z и знаки препинания. Ко вторым - табуляция, перенос каретки, перевод строки и прочие, оставшиеся с алфавита Мюррея и немного дополненные.

Таблица ASCII из руководства к принтеру до 1972 г.
Таблица ASCII из руководства к принтеру до 1972 г.

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

Стандарт ISO/IEC 646. Красные символы - для национальных знаков.
Стандарт ISO/IEC 646. Красные символы - для национальных знаков.

На картинке выше отражены символы ASCII, где красные знаки отданы под национальные символы вроде Ћ, ў и подобных. Заметьте: на картинке выше нет фигурных скобок, которые бывают нужны программистам. Из-за них и не только, многие программисты сидели на стандарте US_ASCII (американский вариант). Вместо национальных символов подставлялись в предложение знаки пунктуации. Например, шведский программист, отправив другому программисту электронное письмо с вопросом, не пойти ли ему пообедать, может получить "N {jag har sm | rg} sar" в качестве ответа, который должен быть "Nä jag har smörgåsar", что означает "Нет, у меня есть бутерброды"(литер.перевод).

Ты, возможно, скажешь: ну что за глупость? Почему бы сразу не увеличить количество бит на символ до такого количества, чтобы всем хватало? Ответ простой:

Дискета
Дискета

Предок вот этой малышки дискеты появился только в 1971 году, там не было никаких гигабайт или терабайт вместимости. Самая первая дискета была размером с книгу "Гарри Поттер и дары смерти" и вмещала в себя 720 Кб. Это меньше 1 Мб почти на 30%. Просто у людей не было на тот момент возможности хранить большое количество данных. В задачах по программированию тех лет даже давались примеры, где нужно было рассчитать количество потребляемой памяти, который займет код ученика.

-14

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

Не забывай про комментарии, подписывайся и ставь лайк этой статье. Увидимся в тексте следующей!

-15