如何在 C++ 中将整数转换为十六进制字符串?
我可以找到一些方法来做到这一点,但它们似乎主要针对 C。在 C++ 中似乎没有本地方法可以做到这一点。这是一个非常简单的问题;我有一个 int
我想将其转换为十六进制字符串以供以后打印。
原文由 kryptobs2000 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在 C++ 中将整数转换为十六进制字符串?
我可以找到一些方法来做到这一点,但它们似乎主要针对 C。在 C++ 中似乎没有本地方法可以做到这一点。这是一个非常简单的问题;我有一个 int
我想将其转换为十六进制字符串以供以后打印。
原文由 kryptobs2000 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用变量:
char selA[12];
然后:
snprintf(selA, 12, "SELA;0x%X;", 85);
将导致 selA
包含字符串 SELA;0x55;
请注意,围绕 55
的内容只是与我的应用程序中使用的串行协议相关的细节。
原文由 Paul Ratazzi 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
使用
<iomanip>
的std::hex
。如果您打印,只需将其发送到std::cout
,如果没有,则使用std::stringstream
你可以在第一个
<<
前面加上<< "0x"
或者你喜欢的任何东西。其他感兴趣的操作是
std::oct
(八进制)和std::dec
(回到十进制)。您可能遇到的一个问题是,这会产生表示它所需的确切数字数量。您可以使用
setfill
和setw
来规避问题:所以最后,我建议这样一个功能: