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

Исходное сообщение
"Проблемма с побайтовым printf"

Отправлено geragray , 07-Дек-07 17:22 
Есть массив packet->payload, из него нужно откусить 2 байта и вывести в консоль. Значение соответсвующих байтов в массиве 0x974b. Код следующий

char trID[2];
            
trID[0] = packet->payload[32];
trID[1] = packet->payload[33];
                                                
printf("transactionID is: %x\n",trID[0]);
printf("transactionID is: %x\n",trID[1]);
printf("transactionID is: %x\n",trID);

Результат:
transactionID is: ffffff97
transactionID is: 4b
transactionID is: bf93bfea

Никто не знает почему в последнем случае когда консоли должно появится 0х974в я получаю там 4х байтную фигню?


Содержание

Сообщения в этом обсуждении
"Проблемма с побайтовым printf"
Отправлено anonymous , 07-Дек-07 22:04 
>Никто не знает почему в последнем случае когда консоли должно появится 0х974в
>я получаю там 4х байтную фигню?

С какой стати там будет 0x97? просто trID -- это адрес!


"Проблемма с побайтовым printf"
Отправлено DeadMustdie , 09-Дек-07 16:00 
>printf("transactionID is: %x\n",trID[0]);

printf("transactionID is: %x\n", (int)(trID[0]));

и т.п.


"Проблемма с побайтовым printf"
Отправлено Michelnok , 14-Дек-07 16:42 
>>printf("transactionID is: %x\n",trID[0]);
>
>printf("transactionID is: %x\n", (int)(trID[0]));
>
>и т.п.

либо

printf("transactionID is: %hhx\n", trID[0]);


"Проблемма с побайтовым printf"
Отправлено Mr.Link , 21-Дек-07 11:28 
>[оверквотинг удален]
>printf("transactionID is: %x\n",trID[1]);
>printf("transactionID is: %x\n",trID);
>
>Результат:
>transactionID is: ffffff97
>transactionID is: 4b
>transactionID is: bf93bfea
>
>Никто не знает почему в последнем случае когда консоли должно появится 0х974в
>я получаю там 4х байтную фигню?

Определи trID[2] как unsigned