Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Почему для кодирования одного символа используют один или более байт, если в байт можно уместить последовательность символов?

Например для кодирования числа до 255 можно использовать один байт в соответствии с двоичной системой, однако для маркировки иных символов стоило бы занять ряд значений.
Тогда буква маркировалась бы значением 11111111, означающим что следующий за маркером байт буквенный, включающий в свою очередь все единичные буквы и некоторые из сочетания, а что не вошло в байт так же маркируется.
Таким образом система кодирования сократила бы объем затраченных на хранение информации ресурсов.
Существует ли поробная система кодирования, и реально ли с ее помощью "сжать" информацию?
Информатика и программатика.
  · 20,5 K
Лучший
Пишу код и т.п.  · 4 июн 2022  · itustinov.ru
Хранить числа в бинарном виде в тексте? Подобное с оговорками практикуется в способе кодирования Base64, который используется для передачи бинарных файлов по электронной почте. Есть также ASCII85, который совместим оказывается даже с ДОСовскими однобайтовыми кодировками (CP866 и CP437). Оба эти варианта — не кодировки, а способ компактной записи бинарных данных текстом.
Подход с переменной длиной символа используется в кодировке UTF-8. Она позволяет записывать в один байт много частоиспользуемых символов. Если первый байт использовать только для цифр, другие символы потребуют минимум двух байт, т.е. размер файлов для большинства текстов вырастет.
Если уменьшать минимальный кусочек подобной кодировки до суббайтовых величин, это тоже вряд ли часто будет давать выигрыш и усложнит работу с таким содержимым (например, как решать ситуацию, когда текст заканчивается на середине байта).
Не исключаю, что можно сделать немного более компактную для каких-то целей кодировку, чем UTF-8, но основной плюс последней в том, что она фактически стандарт сейчас. В ней также предусмотрен опциональный заголовок файла (BOM) для автоопределения софтом. Удобно, когда у всех текстовых файлов одна и та же кодировка, либо она легко определяется.
Еще по теме вопроса, никто не запрещает смешивать бинарное представление чисел и текст в бинарных файлах. Бинарные форматы редко бывают похожими на текстовые: в них нет абзацев, нет экранирования символов, у полей обычно либо фиксированные размеры, либо размер обозначается до их начала, что позволяет использовать в данных любые значения байт, ведь никакое из них не означает конец блока. Есть бинарные форматы, такие же гибкие, как текстовые: например, BSON, на котором основан медиаконтейнер mkv, основа WebM.
При разработке собственных бинарных форматов, важно определять в спецификации порядок байт многобайтовых значений, таких как int32, ведь он по-умолчанию отличается на разных платформах.
Ответ на вопрос из заголовка, без учёта деталей, следующий. Количество информации зависит не только от количества символов, но и от размера алфавита. Оно равно размеру алфавита в степени количества символов. Байт — это два в восьмой степени. Три десятичных знака — это десять в третьей степени. Те же три десятичных знака, но набранные кодировкой из 150 символов, это 150 в третьей степени.
Я прям завидую квалификации ваших телепатов, я третий раз перечитываю вопрос, чтобы понять, о чём вообще человек говорит. :)
Веб-разработчик, геймер, специалист по этике  · 6 июн 2022
Давайте определимся вот с чем. В оперативной памяти хранятся только числа. То же самое относится к файлам на диске. Более того, оператива физически не способна хранить ничего, кроме электрических сигналов, которые мы интерпретируем как числа. Группа из восьми транзисторов используется для кодирования числа от 0 до 255, которое мы называем "байтом". Если северный мост по... Читать далее
Научные заметки о жизни: zen.yandex.ru/id/5c43498395753900ac66852d  · 4 июн 2022
Байт может иметь 256 различных значений. Использовать их можно по разному, но нельзя впихнуть невпихуемое. Можно договориться, что в байте хранится номер главы романа "Война и мир" (пусть только первых 256). И утверждать, что мы храним в байте очень много символов. Но это не так. Вариантов по прежнему 256. Военные специалисты в докомпьютерную эпоху разрабатывали кодовые... Читать далее
Диванный философ, по совместительству инженер  · 12 июн 2022
Тут надо представить характер информации, которую мы пытаемся кодировать. Ваш способ кодировки будет эффективен, если у нас есть неструктурированные данные состоящие в основном из последовательностей цифр (которые можно представить как числа, одиночная цифра среди других символов выигрыша не даст) с небольшой примесью букв одного языка без спецсимволов. Поскольку на... Читать далее
Пенсионер, электрохимик, доцент кафедры физики, к.т.н., немножко электронщик, фотошопер...  · 30 дек 2022
Когда я был студентом, компьютеров не было вовсе, а были ЭВМ и появились первые калькуляторы. А еще были занятия по программированию. :) В то время нашей основной задачей было написание компактных алгоритмов - то есть способа записать решение задачи используя минимальное число операторов. Это было связано с высокой ценой оперативной памяти. О времени же исполнения кода... Читать далее
Частный крипто-программист  · 14 июн 2022
Кои7 была такая кодировка. Использовалось не 8 бит а 7. Тогда да, в один байт можно было запихнуть больше одного символа. То что вы предлагаете, не имеет смысла, в современных реалиях. Потому что экономить память используя сжатие кодировки не даст ничего, кроме гемороя. Компьютеры пошли с 8 гигобайт оперативки, и терабайтными винчестерами. И к вашему сведению, в docx... Читать далее
Математика физика история   · 4 июн 2022
В бытность студентом мы изучали кодировку с минимальной избыточностью информации (не помню как она называется). Она построена на подобие азбуки Морзе, то есть наиболее часто встречающийся символ кодируется одним битом. И так далее, чем чаще встречается символ тем меньше бит занимает его код. 
Вероятно, код Хаффмана. Он используется в формате JPEG. После так называемого квантования (отбрасывания высоких... Читать дальше
Программирование, большие данные, криптопанк, SpecOps  · 9 июн 2022
Кодирование текстовой информации имеет несколько различных аспектов, которые можно разделить по целям использования. Например закодированную информацию можно хранить, обрабатывать и передавать. Если информацию нужно обрабатывать то она должна быть представлена в ОЗУ в самом удобном для этого виде и представлять её в сжатом виде, за исключением некоторых специальных... Читать далее