c++ - C++中的整数到十六进制字符串

标签 c++ decimal hex int

如何在 C++ 中将整数转换为十六进制字符串?

我可以找到一些方法来做到这一点,但它们似乎主要针对 C。在 C++ 中似乎没有本地方法可以做到这一点。这是一个非常简单的问题;我有一个 int我想将其转换为十六进制字符串以供以后打印。

最佳答案

使用<iomanip> std::hex .如果您打印,只需将其发送至 std::cout ,如果没有,则使用 std::stringstream

std::stringstream stream;
stream << std::hex << your_int;
std::string result( stream.str() );

您可以在第一个 << 前面添加与 << "0x"或任何你喜欢的,如果你愿意。

其他感兴趣的操作是 std::oct (八进制)和 std::dec (回到十进制)。

您可能遇到的一个问题是,这会产生表示它所需的确切数字数量。您可以使用 setfillsetw这是为了规避问题:
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++ - C++中的整数到十六进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64205067/

相关文章:

Python - 生成给定长度的所有可能的 1 和 0 数组的算法

c++ - 动态内存分配 C++

c - 如何检查十六进制数是否等于特定的二进制数?

c++ - 单击鼠标时不需要的 SDL_QUIT 事件

ruby-on-rails - 在Ruby on Rails表单中输入数字时的小数和逗号

python - Python中小数点后的 float 加零

c# - 确定小数是否可以存储为 int32

在 C 中从 HEX 颜色转换为 RGB 结构

perl - 如何生成具有不同基数的字符序列,例如十六进制?

c++ - Qt 5 样式 : dynamically load qml files