如何将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】:假设String
是std::string
,你可以使用std::stoi:
std::string str("0xffff", 0, 0);
int i = std::stoi(str);
【讨论】:
以上是关于如何将0x0000之类的字符串转换为int的主要内容,如果未能解决你的问题,请参考以下文章