c++ - 将 std::string 数字转换为十六进制数

标签 c++ hex

<分区>

我在网上搜索过,似乎并不能解决我的问题。基本上我有一个 std::string,它包含一个十六进制内存地址(例如 0x10FD7F04)。显然,这个数字是从文本文件中读取并保存为 std::string

我需要将此字符串转换为 int 值,但保留十六进制表示法 0x。有什么办法吗?

最佳答案

您可以使用 C++11 std::stoi功能:

#include <iostream>
#include <iomanip>
#include <string>

int main()
{
    std::string your_string_rep{"0x10FD7F04"};
    int int_rep = stoi(your_string_rep, 0, 16);
    std::cout << int_rep << '\n';
    std::cout << std::hex << std::showbase << int_rep << '\n';
}

输出:

285048580
0x10fd7f04

关于c++ - 将 std::string 数字转换为十六进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25685303/

相关文章:

c++ - 为定时样本命名​​循环缓冲区类?

c++ - cpp 中十六进制模式的大小

c - Uart 与 C 语言中的十六进制代码通信

integer - 我们如何理解 Julia 中十六进制数与十进制数的加法?

C 编程 - 按位运算符并了解何时使用

c++ - C++ 的 RSA 加密库

c++ - 在 C++ 中输出分配给 double 组中的元素的字符串

c++ - 带有 gcc stdlib 的 icpc C++11

c - 使用树莓派将 .hex 文件从 ArduinoIDe 上传到 attiny85

c++ - 编译器去虚拟化,是不是太聪明了?