10进制怎么强制转为16进制?不是等值转换哦

10进制如何强制转为16进制?不是等值转换哦~
比如10进制的 56 如何转为16进制的 0x56?

------解决方案--------------------
首先楼主要把56分成5和6,然后就是5*16+6,这就是结果
在举个例子,123变成0x123,就是楼主先把123分解成1,2和3,然后1*16*16+2*16+3
------解决方案--------------------
sprintf_s(buf, "%d", 56);
sscanf_s(buf, "%x", &i);
------解决方案--------------------
4楼正解:

int ret;
char buf[32];
sprintf(buf, "%d", 56);
sscanf(buf, "%x", &ret);

ret就是你要的值
------解决方案--------------------
用c++:

#include <strstream>

std::strstream buffer;
int result_in_hex;
buffer << std::dec << 123;
buffer >> std::hex >> result_in_hex;


------解决方案--------------------
探讨
首先楼主要把56分成5和6,然后就是5*16+6,这就是结果
在举个例子,123变成0x123,就是楼主先把123分解成1,2和3,然后1*16*16+2*16+3