URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6460
[ Назад ]

Исходное сообщение
"преобразование массива шестнадцатеричных чисел в строку"

Отправлено developer1 , 15-Май-07 14:23 
Привет всем! Получаю от контроллера через com-порт код карты в шестнадцатеричном виде побайтно:59,72,3Е,2,1 Подскажите как его предбразовать в строку вида "59723Е0201", так он сохранен в mySQL базе.

Содержание

Сообщения в этом обсуждении
"преобразование массива шестнадцатеричных чисел в строку"
Отправлено devcoder , 15-Май-07 15:44 
>Привет всем! Получаю от контроллера через com-порт код карты в шестнадцатеричном виде
>побайтно:59,72,3Е,2,1 Подскажите как его предбразовать в строку вида "59723Е0201", так он
>сохранен в mySQL базе.

можно так:

sscanf(str,"%2x%2x%2x%2x%2x",
            &bin[0], &bin[1], &bin[2], &bin[3], &bin[4], &bin[5])


"преобразование массива шестнадцатеричных чисел в строку"
Отправлено developer1 , 15-Май-07 16:28 
Спасибо, попробовала, только потом функция printf("%s\n",str) выводит эту строку в виде каких-то квадратиков и т.п. Может я что не так делаю?


"преобразование массива шестнадцатеричных чисел в строку"
Отправлено devcoder , 15-Май-07 17:03 
> Может я что не так делаю?

кусок кода



"преобразование массива шестнадцатеричных чисел в строку"
Отправлено NuINu , 15-Май-07 17:51 
>>Привет всем! Получаю от контроллера через com-порт код карты в шестнадцатеричном виде
>>побайтно:59,72,3Е,2,1 Подскажите как его предбразовать в строку вида "59723Е0201", так он
>>сохранен в mySQL базе.
>
>можно так:
>
>sscanf(str,"%2x%2x%2x%2x%2x",
>            
>&bin[0], &bin[1], &bin[2], &bin[3], &bin[4], &bin[5])

не понимаю за чем здесь это? он же байты получает в bin, а в str нужно вывести 0x59,0x72 и тд.
так надо не скан принт!
  sprintf(str,"%02x%02x%02x%02x", bin[0], bin[1], bin[2], bin[3]).


"преобразование массива шестнадцатеричных чисел в строку"
Отправлено devcoder , 15-Май-07 17:58 
> не понимаю за чем здесь это? он же байты получает в bin, а в str нужно вывести 0x59,0x72 и > тд. так надо не скан принт!

точно, сорри, зашился - привёл примет для "обратной ситуации"



"преобразование массива шестнадцатеричных чисел в строку"
Отправлено developer1 , 16-Май-07 08:27 
Спасибо! С sprintf все работает как надо!