为了账号安全,请及时绑定邮箱和手机立即绑定

在C ++中整数到十六进制字符串

在C ++中整数到十六进制字符串

C++
Helenr 2019-07-30 14:42:46
在C ++中整数到十六进制字符串如何在C ++中将整数转换为十六进制字符串?我可以找到一些方法来实现它,但它们似乎主要针对C。似乎在C ++中没有本地方法。这是一个非常简单的问题; 我有一个int我想转换为十六进制字符串以便以后打印。
查看完整描述

3 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

<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();}


查看完整回答
反对 回复 2019-07-30
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

使用std::stringstream到整数转换成字符串和特殊操作者设置的基础。例如:

std::stringstream sstream;sstream << std::hex << my_integer;std::string result = sstream.str();


查看完整回答
反对 回复 2019-07-30
  • 3 回答
  • 0 关注
  • 652 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信