相当于java Integer.toHexString的C/C++。相当于java的C/C++ Integer.toHexString
将一些代码从java移植到C/C++,C是否在函数中构建了Integer.toHexString在java中?
UPDATE:
继承人是确切的代码我试图端口:
String downsize = Integer.toHexString(decimal);
相当于java Integer.toHexString的C/C++。相当于java的C/C++ Integer.toHexString
将一些代码从java移植到C/C++,C是否在函数中构建了Integer.toHexString在java中?
UPDATE:
继承人是确切的代码我试图端口:
String downsize = Integer.toHexString(decimal);
在C:
sprintf(s, "%x", value);
一定要在s
有足够的空间呈现十六进制数字。 64字节保证(在此)是足够的。
你应该使用'snprintf'而不是'sprintf',因为后者会溢出缓冲区。 – 2010-06-26 06:47:40
万一您的编译器支持它。 MSVC仍然不支持C99,afaik。 – 2010-06-26 08:46:33
微软有自己的解决方案(StrSafe)。如果你正在处理'TCHAR'这可能是一条路。另一方面,如果你真的知道你是在处理'char's还是'wchar_t's(以及扩展名,你正在使用的编码),那么你可以使用更加标准化的东西。 – 2010-06-26 09:10:55
如何Boost.Format用于C++溶液:
(format("%X") % num).str()
使用<sstream>
头:
std::string intToHexString(int i) {
std::stringstream ss;
ss << std::hex << std::showbase << i;
return ss.str();
}
#include <iostream>
#include <sstream>
std::stringstream ss(std::stringstream::out);
int i;
ss << std::hex << i << flush;
string converted = ss.str();
此外看一看setw(这需要#include <iomanip>
)
itoa做你想做的事情(第三个参数表示ba SE):
/* 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;
}
为什么非标准功能? – Nyan 2010-06-26 12:25:41
char s[1+2*sizeof x]; sprintf(s, "%x", x);
是哪一个,C或C++?答案会有所不同。 – 2010-06-26 06:25:57
C++,旨在与iPhone一起使用。 – user282964 2010-06-27 15:44:15