CString strVal1 = “0x0701”;
现在我要把“0x0701”当作整形 int 的 16进制 来处理?如何才能转化呢?
我知道有把 CString strVal2 = “10”;这种变量转化成 10 二进制的整形 int!
6 个解决方案
#1
套用公式计算一下,自己写个公式,把字符串当作数组就可以了阿
#2
CString strVal1 = "0x0701";
int nValue;
sscanf(strVal1.c_str(), "%x", &nValue);
int nValue;
sscanf(strVal1.c_str(), "%x", &nValue);
#3
char *stopString;
long int lValue;
lValue=strtol(strValue.GetBuffer(strValue.GetLength()+1),&stopString,16);
strValue.ReleaseBuffer()
也可以使用strtod
long int lValue;
lValue=strtol(strValue.GetBuffer(strValue.GetLength()+1),&stopString,16);
strValue.ReleaseBuffer()
也可以使用strtod
#4
有2种方法,一种是直接调用函数.好像有个strtolen 的函数就是完成这个功能的.
第二种方法是比较根本的方法, 算法我有些忘记了,你可以察看dennis写的c语言程序设计
.现在提供思路:可能有些错误
for(i = 0;i <strlen(s);i++)
for(j = 0;i< k;j++)
k = s[i] /16 + s[i] - 'a' ;
第二种方法是比较根本的方法, 算法我有些忘记了,你可以察看dennis写的c语言程序设计
.现在提供思路:可能有些错误
for(i = 0;i <strlen(s);i++)
for(j = 0;i< k;j++)
k = s[i] /16 + s[i] - 'a' ;
#5
有C++函数直接完成
#6
CString strVal1 = "0x0701";
int nValue;
sscanf(strVal1, "%x", &nValue);
int nValue;
sscanf(strVal1, "%x", &nValue);
#1
套用公式计算一下,自己写个公式,把字符串当作数组就可以了阿
#2
CString strVal1 = "0x0701";
int nValue;
sscanf(strVal1.c_str(), "%x", &nValue);
int nValue;
sscanf(strVal1.c_str(), "%x", &nValue);
#3
char *stopString;
long int lValue;
lValue=strtol(strValue.GetBuffer(strValue.GetLength()+1),&stopString,16);
strValue.ReleaseBuffer()
也可以使用strtod
long int lValue;
lValue=strtol(strValue.GetBuffer(strValue.GetLength()+1),&stopString,16);
strValue.ReleaseBuffer()
也可以使用strtod
#4
有2种方法,一种是直接调用函数.好像有个strtolen 的函数就是完成这个功能的.
第二种方法是比较根本的方法, 算法我有些忘记了,你可以察看dennis写的c语言程序设计
.现在提供思路:可能有些错误
for(i = 0;i <strlen(s);i++)
for(j = 0;i< k;j++)
k = s[i] /16 + s[i] - 'a' ;
第二种方法是比较根本的方法, 算法我有些忘记了,你可以察看dennis写的c语言程序设计
.现在提供思路:可能有些错误
for(i = 0;i <strlen(s);i++)
for(j = 0;i< k;j++)
k = s[i] /16 + s[i] - 'a' ;
#5
有C++函数直接完成
#6
CString strVal1 = "0x0701";
int nValue;
sscanf(strVal1, "%x", &nValue);
int nValue;
sscanf(strVal1, "%x", &nValue);