Я пытался объединить 4 шестнадцатеричных номера и не могу это сделать.Объединить шестнадцатеричные числа в C
Пример:
int a = 0x01;
int b = 0x00;
int c = 0x20;
int d = 0xF1;
//Result should be 0x010020F1
Результаты, которые я получаю с помощью Sprintf и операции побитовое всегда отрезали нули, что дает мне ответы, как 1020F1, который сильно отличается от того, что я хочу. У кого-нибудь есть лучший метод?
Если вы хотите использовать 'snprintf()', то: 'snprintf (буфер, SizeOf (буфер), "0x% .2X% .2X% .2X% .2X" , a, b, c, d); 'должен делать трюк, если« буфер »короче 11 байтов. –
Если вы хотите только напечатать это, используйте 'printf (« 0x% 02x% 02x% 02x% 02x \ n », a, b, c, d);' –
@Eddy_Em: будучи сверхпроницаемым, используйте 'X' для получить «F1» часть требуемого результата. –