请教一个问题::wchar_t StrToHex;
CString str="6FFFFFFF";
long l=wcstol(str,&StrToHex,16);
通过这种方法后,可以把字串"6FFFFFFF"
转换成16进制形式的0x6FFFFFFF;
此时l就等于0x6FFFFFFF的十进制值:1879048191 因为wchar_t是有符号的32位字符型,
所以它能表示的最大正数是:2147483647
那么我要将一个字符"9FFFFFFF"转换成十六进制的十进制格式,
此时因为0x9FFFFFFF=2684354559它大于了2147483647
,那么在StrToHex的值就会溢出,所以l得不到正确值
wchar_t StrToHex;
CString str="9FFFFFFF";
long l=wcstol(str,&StrToHex,16);
我现在想将"9FFFFFFF"这个字符转换成16进制形式的0x9FFFFFFF,还有其它的法办吗?
CString str="6FFFFFFF";
long l=wcstol(str,&StrToHex,16);
通过这种方法后,可以把字串"6FFFFFFF"
转换成16进制形式的0x6FFFFFFF;
此时l就等于0x6FFFFFFF的十进制值:1879048191 因为wchar_t是有符号的32位字符型,
所以它能表示的最大正数是:2147483647
那么我要将一个字符"9FFFFFFF"转换成十六进制的十进制格式,
此时因为0x9FFFFFFF=2684354559它大于了2147483647
,那么在StrToHex的值就会溢出,所以l得不到正确值
wchar_t StrToHex;
CString str="9FFFFFFF";
long l=wcstol(str,&StrToHex,16);
我现在想将"9FFFFFFF"这个字符转换成16进制形式的0x9FFFFFFF,还有其它的法办吗?
解决方案 »
- wince系统中输出TXT,打开是乱码,这个用什么函数输出的呢
- 主程序和dll文件分离
- WebBrowser控件如何显示最后一页html?
- 用RAS族函数创建连接的问题?急
- ((IUnknown*)*ppv );有什么区别
- 哪位用过Microsoft Scripts Host?它和VBScript是不是一回事?
- 请问如何遍历一条listbox记录就删除该条,并不影响遍历?
- vc编辑一个简单的程序
- 关于BCGControlBar中的CBCGOutlookBar问题!急!在线给分
- extern的问题
- CPropertySheet怎么隐藏标签呢?
- 光标移动到button上,和离开button,怎样在父窗体Dlg上判断
#include <stdio.h>int main()
{
char* str="9FFFFFFF"; unsigned long val = 0; sscanf(str, "%x", &val); return 0;
}
DWORD dwVal = _tcstoul(strText, NULL, 16);
用这个呢?
感谢你,sscanf不处理CString类型字串
大哥啊,太感谢你了,你又帮了解决了一个问题。。感激啊我自己也弄了一个蠢办法,用位移的方法来把8位的十六进制当做2个4位的十六进制进行处理。
CString mem2;
wchar_t StrToHex;
ULONG l;
l=wcstol(mem2.Left(4),&StrToHex,16);
tm=l<<16;
l=tm+wcstol(mem2.Right(4),&StrToHex,16);
===================
这里有问题吧!
是停止位置的指针的话,应该定义为:
wchar_t* strToHex;==================
函数原型是
long wcstol( const wchar_t * ptr,
wchar_t ** endptr,
int base );