Б.г.> Скорее нельзя. Текст содержит большие и маленькие буквы, а в коде Бодо нет возможности переключить регистры.
Довесили бы дополнений. Не в первой же, его и так раздували понемногу.
Татарин>> Ну, сначала примем как факт, что практически везде сначала было 5, а потом 7 бит.
Б.г.> А потом внезапно 5 1/3 бита. RADIX-50. Вся эта экономия происходила из-за того, что биты были дороги - и в хранении, и в передаче.
Ну да.
Татарин>> 8 бит возникло уже позже для поддержки национальных алфавитов и породило кучу проблем,
Б.г.> А вот и нет - 8 бит возникло естественным способом.

Нет ничего "естественного" в выделении этого числа фирмой ИБМ. Это просто число. Да, степень двойки, да, умещается 2 4-битные BCD... Но и только. 8 битные кодировки, вмещающиеся в байт - позднее уродливое наследие.
Б.г.> Правильно, и это иллюстрирует, что не 8 бит введены были ради национальных алфавитов, а национальным алфавитам пришлось ужиматься в 8-битное прокрустово ложе.
Ты меня совершенно неверно понял: 8 бит, конечно, были введены не ради национальных алфавитов, а вообще "просто так". Тут утверждалось, что "байт - это для удобства обработки текстов", так вот это не так.
Двоично-десятичное представление было придумано ИБМ, но в реальности же практически и не пригодилось: с ростом сложности вычислений это почти мгновенно потеряло актуальность. Проще преобразовать бинарное представление в числа один раз, чем постоянно таскать с собой коррекцию (при этом, замечу, теряя биты и скорость исполнения). На практике оно почти и не использовалось, так что не может служить аргументом "за байт". Напротив, само наличие двоично-десятичной арифметики - недостаток.
Татарин>> При этом представь себе, что альтернативно, с той же лёгкостью, с которой ты выбираешь из памяти байт, ты можешь выбрать любое произвольное битовое поле. Это не требует каких-то ужасов ни в СК, ни в аппаратуре (наоборот, аппаратура как раз упрощается в сравнении с побайтовой адресацией). Скорость работы увеличивается, память экономится.
Б.г.> Скорость работы уменьшается.
Нет.

Ещё раз - в сравнении с побайтовой адресацией.
Байт - это и есть совершенно произвольное битовое поле (не бит, и не слово) для любой не-8-бит машины.
Посмотри на побайтовую адресацию с этой точки зрения, и ты увидишь, что все твои претензии по скорости выборки и обработки применимы к машинам с побайтовой адресацией, только размер битового поля произвольно фиксирован волюнтаристким решением фирмы ИБМ.
Если у тебя есть, допустим, массив 4-битных целых, который у тебя изображает байтовый массив, то ты теряешь 4 бита из 8, половина помяти просрана. А bool сейчас всё равно почти-всегда либо слово (int), либо байт (что уродливо вдвойне - ты теряешь И память, И скорость).
Но ты не получаешь НИКАКОГО выигрыша по скорости при выборке байтов по сравнению с выборкой, допустим, 4 бит, все твои претензии по недозаполнению шины, по вычислению адресов, по неэффективному использованию АЛУ и вот всё это - они в ПОЛНОЙ мере применимы к любой 32-битной машине с побайтовой адресацией. Ну, разве что на современных архитектурах аппаратура частично скрывает от тебя проблемы с побайтовой выборкой и дополнительно создаёт проблемы с выборкой по 4 бита.
Но это не выгоды, а проблемы конкретной аппаратуры.
Более того, в конкретных рассматриваемых архитектурах (ИБМ, x86) к проблемам "чистой" "непословной" выборки добавляются ещё характерные проблемы архитектур - дополнительно ещё неэффективное использование АЛУ и регистров из-за перекрытия регистров разной размерности и невозможности использовать "хвост", дополнительный и бессмысленный расход кодового пространства команды (команды 8, 16, 32, 64 - это разные команды, и часто отличаются далеко не только префиксом) и т.п.
То есть, вот эти все описанные тобой проблемы - они существуют для байтовой адресации и обработки. ПЛЮС ещё много проблем сверху для конкретных архитектур от ИБМ и Интел.
Если ты пойдёшь ещё дальше, то ты увидишь, что для для любой RISC-подобной архитектуры с выраженным LOAD/STORE из регистрового файла в память, собссно, совершенно монопенисно как высчитывать сдвиг и как адресовать (если речь идёт о степенях двойки).
Побайтово, побитово, по 2, 4, 16 бит - пофигу, железо то же самое, то же количество аппаратуры. При совсем произвольном размере битовых полей (не степенях двойки) потребуется относительно дорогое целочисленное умножение (малоразрядное, впрочем). Но при этом во всех подобных случаях, реализованых на нынешних побайтовых архитектурах, ты будешь делать то же самое, только гораздо более дорогим умножением в коде. И операция доступа в память настолько дорога сама по себе (особенно сейчас), что (быстрое) умножение теряется на этом фоне.
То есть, в итоге получается модификация двух команд работы с памятью с небольшой поддержкой аппаратуры... и взамен получаешь огромную экономию памяти и скорости работы.
...
Теперь о тратах шины, времени и прочего: это всё исчезает, если сразу принять для целочисленной арифметики, что регистр содержит
вектор, от 1 до (число бит) скалярных значений, к которым все операции применяются отдельно (например, при перемножении А и Б, отдельно должны перемножаться А1 и Б1, А2 и Б2 и т.д.). С точки зрения аппаратуры или времени, это не несёт НИКАКИХ дополнительных трат (просто небольшая модификация логики работы того же сумматора или умножителя). Это (в отличие от привычных тебе нынешних векторных операций в х86) не требует дополнительных регистров, кодового пространства и т.п.
При этом шина и АЛУ при работе с битовыми полями используются на полную, эффективнее, чем в
любых большинстве нынешних архитектурах (реальный пример обратного NM, где как раз вот так и сделано, ну и новые тензорные процессоры NVidia, где они честно потырили идеи NM).
...
Собссно, это и есть самый простой, красивый и эффективный способ апгрейда БЭСМ-6-совместимых.
А вовсе не введение идиотского промежуточного размера "недослова" в 8 бит и кучи дополнительных операций, чтобы всё это как-то обрабатывать, как сделала ИБМ (а потом, думаю, вынужденно, Интел сотоварищи).