hur.cn - 华软网

 热门搜索

请教VC中将字符串转化为16进制数字

  作者:未知    来源:网络    更新时间:2011/10/7
使用strtol函数,将字符串转化为十六进制数字:
unsigned int a = strtol("744DE3E0",NULL,16);
得到的结果正确:a = 0x744DE3E0

unsigned int b = strtol("844DE3E0",NULL,16);
得到的结果错误:b = 0x7FFFFFFF

上面的程序中,唯一不同的是字符串:"844DE3E0" 和 "744DE3E0",也就是32bit的数据的最高bit。

请教这种错误时怎么回事?
应该如何避免、解决?
---华软 网友回答---
是不是超范围了
---华软网友回复---
strtoul 就可以了!!!!!!!!!!!!!!!!!!
---华软网友回复---
_tcstoi64()肯定没问题。
---华软网友回复---
引用 2 楼 specialfaint 的回复:
strtoul 就可以了!!!!!!!!!!!!!!!!!!


应该用这个你想要返回的是无符号int,用这个合适。
---华软网友回复---
strtoul
up
ulong
---华软网友回复---
unsigned long

---华软网友回复---
strtoul() 或者 _tcstoi64()  都可以吧。
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。