相當於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