У меня есть googled alot, чтобы узнать, как преобразовать свой unsigned char * в печатную шестнадцатеричную строку. До сих пор я немного понимаю, как все это работает & разница между подписанными & неподписанными символами.Преобразование unsigned char * в удобочитаемую строку & whats эта функция делает
Можете ли вы сказать мне, что эта функция я нашел? И помогите мне devlop функцию, которая преобразует unsigned char * (которая является хешированной строкой) в печатную строку?
делают ли следующая функция этого:
- это перебирает каждый второй символ строки массив символов
- на каждом цикле он считывает символ в позиции строки [х], преобразует его в число без знака (с точностью до 2 знаков после запятой), затем копирует преобразованный символ (число?) в переменные uChar.
- наконец-то он сохраняет неподписанный символ Uchar в шестнадцатеричной
void AppManager :: stringToHex(unsigned char* hexString, char* string, int stringLength)
{
// Post:
unsigned char uChar = 0;
for (int x = 0; x<stringLength; x+=2)
{
sscanf_s(&string[x], "%02x", &uChar);
hexString[x] = uChar;
}
}
Так что я предполагаю, что означает, что он преобразует символ в строке беззнаковых (& 2dcp), чтобы убедиться, что он может быть правильно хранится шестнадцатеричный. Почему до двух знаков после запятой, & не простое преобразование из подписанного (если этот символ подписан) в результат без знака в совершенно другой строке?
Если у меня есть unsigned char *, то как я могу конвертировать его в нечто, что позволит мне распечатать его на экране?
Шестнадцатеричные «струны» обычно кодируются человеком, фактически (в противном случае «шестнадцатеричная» часть вообще не имеет смысла). И я, конечно, не назвал бы это «двоичным представлением данных», по крайней мере, тем, что они _less so_, чем они были бы как базовое числовое значение. По крайней мере, менее прямо так. Надеюсь, это имело смысл. –
Позвольте мне высказать следующее: «шестнадцатеричные строки являются неизменным, более компактным и более удобным для человека представлением лежащих в основе двоичных данных» –
, поэтому в этой функции мы просто преобразуем из двоичной строки в шестую строку? И не от char * до unsigned char *? – user593747