十六进制转化为长整型的问题 例如“AABBCCDD”的字符串是四个字节的十六进制数,要转化成long 类型的数,该怎么做?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 long x;sscanf("AABBCCDD","%x",&x); char ss[]= "AABBCCDD";char *stop;long lvalue = strtol(ss,&stop,16); /* Input various data from tokenstring: */ sscanf( tokenstring, "%s", s ); sscanf( tokenstring, "%c", &c ); sscanf( tokenstring, "%d", &i ); sscanf( tokenstring, "%f", &fp ); /* Output the data read */ printf( "String = %s\n", s ); printf( "Character = %c\n", c ); printf( "Integer: = %d\n", i ); printf( "Real: = %f\n", fp );或自己做函数转。 strtoul可以。自已做的话:long Power(long a, long n){ int nRet = 1; while(n--) { nRet *= a; } return nRet;}long ConvertHexStrToLong(char * lpszHex){ long nLen = strlen(lpszHex); long nRet = 0; long nBitVal = 0; for(int i = nLen; i >= 0; i--) { switch(lpszHex[i])//没有检验是不是在0~F之外 { case 'F': nBitVal = 15;break; case 'E': nBitVal = 14;break; case 'D': nBitVal = 13;break; case 'C': nBitVal = 12;break; case 'B': nBitVal = 11;break; case 'A': nBitVal = 10;break; ...//自已写吧 } nRet += nBitVal * Power(16, i); } return nRet;} 用strtol或者strtoul,自己做,没必要! 但是用strtol或者strtoul计算"AABBCCDD"的结果跟用附件里计算器计算的结果不一样。不知道为什么。 strtoul是符号的,所以还不如strtol好,计算很多结果几乎没有正确的(跟计算器的结果对比) visual studio 2008 安装 多线程到底用在何处?比如2个线程各自写一个100M的文件,如果while(1)内不Sleep(1),则cpu100%,加了后,速度无法忍受。 数值转换 VC中怎么制作日志文件 请问,有谁知道怎么样把程序中的数据保存在word里面啊 如何判断鼠标在CStatic区域里 小弟是初手,问一个菜鸟问题,希不见笑 到那里可以下载到vc啊 mfc中的预定义宏? 请教大家这一段C++代码是什么意思?(看好久没看懂) 请大家帮忙配台电脑 简单问题 快来!!!自定义了一个消息WM_MY_MESSAGE 出现这个错误!
sscanf("AABBCCDD","%x",&x);
char *stop;
long lvalue = strtol(ss,&stop,16);
sscanf( tokenstring, "%s", s );
sscanf( tokenstring, "%c", &c );
sscanf( tokenstring, "%d", &i );
sscanf( tokenstring, "%f", &fp ); /* Output the data read */
printf( "String = %s\n", s );
printf( "Character = %c\n", c );
printf( "Integer: = %d\n", i );
printf( "Real: = %f\n", fp );或自己做函数转。
strtoul可以。自已做的话:long Power(long a, long n)
{
int nRet = 1;
while(n--)
{
nRet *= a;
}
return nRet;
}long ConvertHexStrToLong(char * lpszHex)
{
long nLen = strlen(lpszHex);
long nRet = 0;
long nBitVal = 0;
for(int i = nLen; i >= 0; i--)
{
switch(lpszHex[i])//没有检验是不是在0~F之外
{
case 'F': nBitVal = 15;break;
case 'E': nBitVal = 14;break;
case 'D': nBitVal = 13;break;
case 'C': nBitVal = 12;break;
case 'B': nBitVal = 11;break;
case 'A': nBitVal = 10;break;
...//自已写吧
}
nRet += nBitVal * Power(16, i);
}
return nRet;
}