Я много гуглил, чтобы узнать, как конвертировать мой неподписанный символ * в печатаемую шестнадцатеричную строку.Пока я немного понимаю, как все это работает, а также разницу между знаковыми и беззнаковыми символами.
Можете ли вы сказать мне, что делает эта функция, которую я нашел?И помогите мне разработать функцию, которая преобразует беззнаковый символ * (который является хеш-строкой) в печатаемую строку?
Делает ли следующая функция:
- выполняет итерацию для каждого второго символаиз строки массива char
- в каждом цикле он читает символ в строке позиции [x], преобразует его в число без знака (с точностью до 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;
}
}
Так что я предполагаю, что это означает, что он преобразует символ в строке в unsigned (& 2dcp), чтобы гарантировать, что он может быть правильнохранится шестнадцатеричная строкаЗачем использовать 2 знака после запятой, а не просто преобразовать знак со знаком (если этот знак со знаком) в знак без знака в совершенно другую строку?
Если у меня есть знак без знака * как я могу это сделать?преобразовать его во что-нибудь, что позволит мне распечатать его на экране?