Конвертировать строку base 16 в base 256 string в C ++, и наоборот - PullRequest
0 голосов
/ 14 октября 2010

Кто-нибудь знает как или какие библиотеки можно использовать?

Заранее спасибо!

char * base16Str="1234567F";
char * base256Str;

Ответы [ 2 ]

1 голос
/ 14 октября 2010

Это очень простое преобразование, потому что вам просто нужно сопоставить пары символов с основанием 16 с каждым символом с основанием 256.то есть:

char256[n] = char16[2*n] | (char16[2*n+1] << 4);

, где я предполагаю, что char16[] записи находятся в диапазоне от 0 до 15, т.е. вы уже сопоставили их с '0' - '9', 'a' - 'f' (или 'A' - 'F').

0 голосов
/ 14 октября 2010

Простой способ - использовать поиск по таблице:

const char digits[257] = "0123456789ABCDEFGHIJKLMNOPQRST" /* ... */;

Поиск в массиве символа и использование индекса в качестве значения цифры.

Чтобы получить печатную цифру, используйте значение в качестве индекса в массиве.

Кстати, массив 257, а не 256, чтобы выделить место для символа '\ 0', который не является цифрой, но радует строковые функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...