如何在C,500到0x0500中将十进制文字转换为hex

我有以下内容:int num = 500; char text [8];

如何使文本最终成为hex0x500或1280?

编辑:我看到它很简单,使其成为文本,就像在一些答案中。 但是我需要将这个文本解释为C语言的hex。所以实际上它应该是一个无符号的hexint。

这应该做到这一点。

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

这假设您故意不将num转换为hex,如果这不是故意的话,则会创建整数转换为hex的text

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

K&R有一个练习,第二章如果我没有弄错的话,就要求做这件事。 如果您遇到困难,我建议您在维基百科上查找hex的aritmetic。