尽管很简单,但在 C 中将整数转换为十六进制字符串可能会给开发人员带来挑战。与 C 不同,C 缺乏用于此转换的本机方法。
但是,我们可以利用
std::cout << std::hex << your_int;
要捕获整数的十六进制字符串表示形式以供以后使用,请考虑使用 std::stringstream 对象。
std::stringstream stream; stream << std::hex << your_int; std::string result(stream.str());
在上面的例子中,可以在开头的 << 后面加上 0x 前缀。如果需要,可以进行操作。
值得注意的其他操纵器包括 std::oct(八进制)和 std::dec(十进制)。
但是,std::hex 操纵器默认生成字符串仅包含必要数量的十六进制数字的表示形式。如果需要特定的宽度,可以使用 std::setfill 和 std::setw。
stream << std::setfill('0') << std::setw(sizeof(your_type) * 2) << std::hex << your_int;
最后,可以定义一个通用函数来处理整数到十六进制的转换:
template< typename T > std::string int_to_hex( T i ) { std::stringstream stream; stream << "0x" << std::setfill ('0') << std::setw(sizeof(T)*2) << std::hex << i; return stream.str(); }
以上是如何在 C 中有效地将整数转换为十六进制字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!