floatやintから16進数化したstringが得られる。あんまり使うことなさそう。
class Utils
{
private:
template< typename T >
static std::string IntToHex( T i )
{
std::stringstream stream;
stream
<< std::setfill ('0')
<< std::setw(sizeof(T)*2)
<< std::hex << i;
return stream.str();
}
static std::string FloatToHex(float val)
{
union converter{
float f_val;
unsigned int u_val;
};
union converter var;
var.f_val = val;
return IntToHex(var.u_val);
}
public:
template <typename T>
static std::string ToHex(T i)
{
bool isFloat = bool(typeid(i) == typeid(float));
std::string out = (isFloat) ? FloatToHex(i) : IntToHex(i);
return out;
}
};