为了账号安全,请及时绑定邮箱和手机立即绑定

将十六进制字符串(char [])转换为int?

将十六进制字符串(char [])转换为int?

C
万千封印 2019-08-12 17:13:54
将十六进制字符串(char [])转换为int?我有一个char []包含一个值,如“0x1800785”,但我想要赋值的函数需要一个int,我怎么能把它转换成一个int?我搜索过但找不到答案。谢谢。
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

你试过strtol()吗?

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,但我不建议引入冗余。)


查看完整回答
反对 回复 2019-08-12
?
森林海

TA贡献2011条经验 获得超2个赞

这样的东西可能有用:

char str[] = "0x1800785";int num;sscanf(str, "%x", &num);printf("0x%x %i\n", num, num);

阅读man sscanf


查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 3266 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信