如何将0x0000之类的字符串转换为int

Posted

技术标签:

【中文标题】如何将0x0000之类的字符串转换为int【英文标题】:How to convert string like 0x0000 to int 【发布时间】:2013-05-16 06:39:51 【问题描述】:

如何将像 0x0000 这样的字符串转换为整数??? 此代码不起作用(Func atof 始终返回 0)。

String  str = "0xffff";
(unsigned int)atof(str);

【问题讨论】:

很难说不知道String 是什么。当然,您可能会发现右侧的 related links 很有帮助。 【参考方案1】:

除了 C++ std::stoi,您还可以使用适用于 C 和 C++ 的 strtol(或 strtoul 用于无符号):

int i = strtol(str, NULL, 0);

最后一个参数 0 表示自动选择基数为 8、10 或 16,具体取决于字符串的外观。对于 0x 前缀,将使用基数 16。对于 0 前缀,将使用基数 8。对于其他小数,尝试以 10 为底。

【讨论】:

【参考方案2】:

假设Stringstd::string,你可以使用std::stoi:

std::string str("0xffff", 0, 0);
int i = std::stoi(str);

【讨论】:

以上是关于如何将0x0000之类的字符串转换为int的主要内容,如果未能解决你的问题,请参考以下文章

请问C语言中如何将int转换为float

如何将object转换成int

如何将float转换成string

c语言问题:将数字字符串(如“1234”)转换为数值型数据怎么实现啊

python 中将str类型转化为int

如何将16进制 转换byte数组