将十六进制字符串(char [])转换为int?我有一个char []包含一个值,如“0x1800785”,但我想要赋值的函数需要一个int,我怎么能把它转换成一个int?我搜索过但找不到答案。谢谢。
3 回答
RISEBY
TA贡献1856条经验 获得超5个赞
你试过strtol()
吗?
例:
const char *hexstring = "abcdef0";int number = (int)strtol(hexstring, NULL, 16);
如果数字的字符串表示以0x
前缀开头,则必须使用0作为基数:
const char *hexstring = "0xabcdef0";int number = (int)strtol(hexstring, NULL, 0);
(也可以指定一个明确的基数,如16,但我不建议引入冗余。)
森林海
TA贡献2011条经验 获得超2个赞
这样的东西可能有用:
char str[] = "0x1800785";int num;sscanf(str, "%x", &num);printf("0x%x %i\n", num, num);
- 3 回答
- 0 关注
- 3266 浏览
添加回答
举报
0/150
提交
取消