Хранение десятичного числа в текстовом файле всего с 1 байтом

373
Saurav Kumar Sahu

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

0

2 ответа на вопрос

3
barlop

Вы можете, число 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
jdwolf

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

Это интересно, но не полностью отвечает на вопрос, как это сделать. Elliott B 5 лет назад 0