在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
(回到十進制)。
您可能遇到的一個問題是,這會產生表示它所需的確切數字位數。您可以使用setfill
與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();}

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
使用std::stringstream
到整數轉換成字符串和特殊操作者設置的基礎。例如:
std::stringstream sstream;sstream << std::hex << my_integer;std::string result = sstream.str();
- 3 回答
- 0 關注
- 686 瀏覽
添加回答
舉報
0/150
提交
取消