【问题标题】:CPP reading 0x0A as string instead of hexadecimal [duplicate]CPP 将 0x0A 读取为字符串而不是十六进制 [重复]
【发布时间】:2014-07-20 08:27:23
【问题描述】:

我正在从数据库中获取一些值,这些值是逗号分隔的十六进制值 (0x0A,0x01,0X0B)。我取它们用逗号将它们分解,但是当尝试使用 0X0A 作为十六进制值时,它会将其视为字符串而不是十六进制数字,我想将其转换为十六进制。

【问题讨论】:

  • 使用strtoul将字符串转为数字
  • Ben 我不需要将字符串从 0A 转换为 0x0A 它已经是 0x0A 我只想让 CPP 将其读取为十六进制值

标签: c++ type-conversion hex


【解决方案1】:

您可以使用istringstreamstd::hex 将十六进制字符串转换为数值:

std::istringstream stream("0x0A");
int val = 0;
stream >> std::hex >> val;
std::cout >> val; // prints "10"

【讨论】:

    猜你喜欢
    • 2021-03-10
    • 1970-01-01
    • 2016-06-13
    • 2012-03-22
    • 2011-05-15
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多