Я хочу сохранить номер 97 в текстовом файле. В шестнадцатеричном формате это 0x61 и должно занимать 8 бит или 1 байт памяти. Но когда я ввожу 97 в текстовом файле, он занимает 2 байта памяти (так как каждая цифра хранится как отдельный символ). Так что мне интересно, есть ли способ сохранить число в текстовом файле с объемом всего 1 байт?

2 ответа2

3

Вы можете, число 97d в шестнадцатеричном является 61h

xxd может хранить и читать именно те байты, которые вы хотите.

Так

C:\carp>echo 61|xxd -r -p >a.a

C:\carp>xxd -p a.a
61

C:\carp>

Другой способ - открыть файл в блокноте, набрать «а» и сохранить его как ascii(по умолчанию). Блокнот будет хранить 0x61 в файле. Блокнот будет читать его как «а», но у вас в файле целочисленное значение 97d или 61h.

Вы даже можете написать исполняемую программу в блокноте! Вам потребуются некоторые знания ассемблера, и вы должны будете набирать буквы, кодировки которых в двоичном виде - те, которые вам нужны!

Возможно, вам нужна программа, которая читает байт из файла aa и отображает его целочисленное значение. Команда была бы идеальной .. можно написать одну ..

0

Да. В Юникоде строчная буква А представлена как 97. По сути текстовый файл представляет символы, поэтому сохранение чисел таким способом может быть контрпродуктивным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .