"Фактический ключ" - это двоичные символы. Однако то, что вы обычно помещаете в файл, представляет собой шестнадцатеричное представление.
xxd выводит текст ASCII вместо шестнадцатеричных представлений благодаря ключу -r. Наличие реальных символов - это то, что man-страница подразумевает под "двоичным".
ASCII - это просто список символов в определенном порядке. Сначала NULL, затем символ начала заголовка, затем символ конца заголовка и т.д. (См .: диаграмма ASCII. Кодовая страница 437 (см. Страницу Википедии на CP437 показывает их в виде пустых, контур смайлика, заполненного смайлика и т.д. 65-й символ обоих имен - заглавная буква А.
Если 65-ым символом является заглавная буква A, это означает, что мы можем отслеживать символы на основе их положения в таблице. Таким образом, заглавная буква A - это позиция 65, которая является позицией 41 в шестнадцатеричном формате (часто пишется в формате C, как 0x41). Вы можете увидеть значение "41" в таблице ASCII, которую я упомянул выше.
Как можно кодировать ASCII или UTF-8 (или обычный открытый текст) в системе с нумерацией?
Числа могут быть преобразованы в другие числа, такие как другие базы.
например, 0x4169 эквивалентно 0x4100 + 0x69. 41 соответствует заглавной букве H, а 69 соответствует строчной букве i. Я не уверен, почему вы сомневаетесь, что числовой разговор возможен. Если это все еще неясно, пожалуйста, объясните заново (возможно, задав еще один вопрос).
I have noticed 2 different kinds of encoding schemes in my ventures. Are there more versions? Why?
Конечно. Зачем? Потому что есть несколько программ, разработанных разными людьми. Точно так же, как, почему есть несколько стандартов символов (EBCDIC, ASCII, UTF-8, Unicode). Некоторые из них бесполезны (EBCDIC был очень популярен до того, как 8-битные кодовые страницы, использующие ASCII, стали более популярными), некоторые могут быть проще поддерживать с помощью определенных программных инструментов. Компьютеры теперь достаточно мощные, чтобы не было технических ограничений, которые обуславливают множество стандартов, но разные программисты делают разные вещи, иногда по разным причинам.
Инструменты конвертации существуют. Отсутствие стандартизации связано именно с тем, что более строгой / более жесткой / лучшей стандартизации не требовалось. Если бы была неоспоримая выгода, больше людей, вероятно, были бы более склонны пытаться приспособиться к более крупным общим тенденциям.
Почему BC выводит числа, а xxd выводит текст ASCII?
bc
это калькулятор. Я ожидал бы числовой вывод. xxd -r
выводит текст ASCII, потому что это то, что задокументировано. Смысл этого программного обеспечения состоит в том, чтобы преобразовывать текст ASCII в (шестнадцатеричные) числовые строки, которые легче набирать, и преобразовывать числовые строки в "двоичные"/ASCII-символы, которые на самом деле более полезны для определенного программного обеспечения. Каждая программа выполняет свои собственные, разные цели.
Я надеюсь, что этот сборник ответов поможет ответить на достаточно ваших вопросов, чтобы все стало более понятным. Я знаю, что вы ссылались на это, но я укажу, что этот вопрос немного губителен, потому что это не очень четкий вопрос, поэтому подумайте над тем, чтобы задавать дополнительные вопросы в новых вопросах. Задавать один реальный вопрос за "страницу с вопросом" на Stack Exchange обычно предпочтительнее.