私の目標は、値をメモリに格納されているとおりに16進文字列に変換する、より簡潔で効果的な関数を作成することです(したがって、出力される値は、たとえばシステムのエンディアンに依存します)。
#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;
}
文字列には文字が含まれているため、現在の実装は機能しませんが、文字の実際の16進表現は機能しません。
私が期待する最終的な結果は、リトルエンディアンシステムでhexOf(0xA0B70708)
文字列を返すことです。0807b7a0
簡潔で効果的な方法でそれを行う方法は?