Как преобразовать десятичные литералы в hex в C, 500 до 0x0500

У меня есть следующее: int num = 500; char text [8];

как сделать так, чтобы текст заканчивался шестнадцатеричным 0x500 или 1280?

edit: я вижу, что его довольно просто сделать текст, как в некоторых ответах. Но мне нужно, чтобы этот текст интерпретировался как гексагон C. Так что на самом деле это должен быть неподписанный hex int.

Это должно сделать это.

 int num = 500; char text[8]; sprintf(text, "0x%d", num); // puts "0x500" in text 

Это предполагает, что вы намеренно не конвертировали num в шестнадцатеричный, если это не было специально, это создает text с целым числом, преобразованным в шестнадцатеричное:

 int num = 500; char text[8]; sprintf(text, "0x%X", num); // puts "0x1F4" in text 

В K & R есть упражнение, во второй главе, если я не ошибаюсь, что просит сделать это. Если у вас возникают трудности, я предлагаю вам взглянуть на шестнадцатеричную арифметику в Википедии.