Перевод содержимого памяти в строку через кодировку ASCII - PullRequest
0 голосов
/ 26 февраля 2012

Я должен перевести часть содержимого памяти в строку, используя кодировку ASCII. Например:

0x6A636162

Но я не уверен, как это разбить, чтобы перевести на ASCII. Я думаю, что это как-то связано с тем, сколько битов в символе / цифре, но я не уверен, как это сделать (и, конечно, я хотел бы узнать больше об этом, а не просто как сделать это ").

1 Ответ

1 голос
/ 26 февраля 2012

ASCII использует 7 бит для кодирования символа (http://en.wikipedia.org/wiki/ASCII). Однако вместо этого обычно кодируют символы, используя 8 бит (обратите внимание, что технически это не ASCII). Таким образом, вам нужно разделить ваши данные на 8-битовые чанки и сопоставьте их с таблицей ASCII.

Если вы используете конкретный язык программирования, у него может быть способ преобразования кода ASCII в символ. Например, в Ruby есть метод .chr,Python имеет встроенную функцию chr (), и в C вы можете напечатать f ("% c", number).

Обратите внимание, что каждый полубайт (4 бита) может быть представлен как одна шестнадцатеричная цифра, поэтому дляВ примере строки, которую вы показываете, каждый 8-битный «чанк» будет:

0x6A
0x63
0x61
0X62

строка будет читать «jcab»:)

...