C/C++相当于 java Integer.toHexString

发布于 2024-09-07 07:00:24 字数 212 浏览 6 评论 0原文

C/C++ 相当于 java Integer.toHexString。

将一些代码从java移植到C/C++,C是否有Java中Integer.toHexString的内置函数?

更新:

这是我试图移植的确切代码:

String downsize = Integer.toHexString(decimal);

C/C++ equivalent to java Integer.toHexString.

Porting some code from java to C/C++, does C have a build in function to Integer.toHexString in java?

UPDATE:

Heres is the exact code i'm trying to port:

String downsize = Integer.toHexString(decimal);

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

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

发布评论

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

评论(6

野鹿林 2024-09-14 07:00:24

使用 标头:

std::string intToHexString(int i) {
    std::stringstream ss;
    ss << std::hex << std::showbase << i;
    return ss.str();
}

Using the <sstream> header:

std::string intToHexString(int i) {
    std::stringstream ss;
    ss << std::hex << std::showbase << i;
    return ss.str();
}
塔塔猫 2024-09-14 07:00:24

C++ 解决方案的 Boost.Format 怎么样:

(format("%X") % num).str()

How about Boost.Format for a C++ solution:

(format("%X") % num).str()
岁月静好 2024-09-14 07:00:24

在 C 中:

sprintf(s, "%x", value);

确保在 s 处有足够的空间来呈现十六进制数字。 (据此)64 字节保证足够。

In C:

sprintf(s, "%x", value);

Be sure to have enough space at s for rendering of the hex number. 64 bytes are guaranteed (hereby) to be enough.

一袭水袖舞倾城 2024-09-14 07:00:24

char s[1+2*sizeof x]; sprintf(s, "%x", x);

char s[1+2*sizeof x]; sprintf(s, "%x", x);

つ低調成傷 2024-09-14 07:00:24
#include <iostream>
#include <sstream>

std::stringstream ss(std::stringstream::out);
int i;
ss << std::hex << i << flush;
string converted = ss.str();

另请查看 setw (需要 #include < ;iomanip>)

#include <iostream>
#include <sstream>

std::stringstream ss(std::stringstream::out);
int i;
ss << std::hex << i << flush;
string converted = ss.str();

Also take a look at setw (which needs #include <iomanip>)

人海汹涌 2024-09-14 07:00:24

itoa 做你想要的(第三个参数表示基数):

/* itoa example */
#include <stdio.h>
#include <stdlib.h>

int main ()
{
  int i = 12;
  char buffer [33];
  itoa (i,buffer,16);
  printf ("hexadecimal: %s\n",buffer);
  return 0;
}

itoa does what you want (third param denotes base):

/* itoa example */
#include <stdio.h>
#include <stdlib.h>

int main ()
{
  int i = 12;
  char buffer [33];
  itoa (i,buffer,16);
  printf ("hexadecimal: %s\n",buffer);
  return 0;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文