Я хочу сохранить номер 97 в текстовом файле. В шестнадцатеричном формате это 0x61 и должно занимать 8 бит или 1 байт памяти. Но когда я ввожу 97 в текстовом файле, он занимает 2 байта памяти (так как каждая цифра хранится как отдельный символ). Так что мне интересно, есть ли способ сохранить число в текстовом файле с объемом всего 1 байт?
2 ответа
Вы можете, число 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 и отображает его целочисленное значение. Команда была бы идеальной .. можно написать одну ..
Да. В Юникоде строчная буква А представлена как 97. По сути текстовый файл представляет символы, поэтому сохранение чисел таким способом может быть контрпродуктивным.