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

发布于 2024-12-05 12:07:50 字数 157 浏览 2 评论 0原文

我有以下内容: 整数数=500; 字符文本[8];

如何使文本最终成为十六进制 0x500 或 1280?

编辑:我发现将其设为文本非常简单,就像在某些答案中一样。但我需要这个文本被 C 解释为十六进制。所以实际上它应该是一个无符号的十六进制 int。

I have the following:
int num=500;
char text[8];

how do I make it so that text ends up being the hex 0x500, or 1280?

edit: i see that its pretty simple to make it text, like in some of the answers. But I need this text to be interpreted as a hex by C. So in reality it should be an unsigned hex int.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无法言说的痛 2024-12-12 12:07:50

如果我没记错的话,K&R 第二章中有一个练习,要求做这件事。如果您遇到困难,我建议您在维基百科上查找十六进制算术。

There is an exercise in K&R, second chapter if I'm not mistaken, that asks to do this very thing. If you are having difficulties I suggest you look up hexadecimal aritmetic on Wikipedia.

锦爱 2024-12-12 12:07:50

这应该可以做到。

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

This should do it.

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

This is assuming you on purposely didn't convert num to hexadecimal, if this wasn't on purpose this creates text with the integer converted to hexadecimal:

int num = 500;
char text[8];
sprintf(text, "0x%X", num); // puts "0x1F4" in text
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文