我的目标是编写更简洁/有效的函数来将值转换为十六进制字符串,因为它存储在内存中(因此打印的值将取决于系统字节顺序):
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <iomanip>
#include <string>
template<typename T>
std::string hexOf(const T& x)
{
return std::string(reinterpret_cast<const char*>(&x), sizeof(x));
}
int main()
{
std::cout<<hexOf(9283)<<std::endl;
return 0;
}
当前的实现不起作用,因为字符串包含字符,而不是字符的实际十六进制表示。
我期望的最终结果是在小端系统上hexOf(0xA0B70708)
返回字符串。0807b7a0
如何以简洁/有效的方式做到这一点?