能力值:
( LV5,RANK:73 )
2 楼
strtol 或 sscanf
能力值:
( LV2,RANK:10 )
3 楼
试试 b = atoi(a); 看看
能力值:
( LV4,RANK:50 )
4 楼
DWORD StrToHex(const char * str)
{
DWORD n = 0;
char szNB[9] = {0};
int iLen = strlen(str);
if(str && iLen >= 1 && iLen <= 8 )
{
if (iLen < 8)
{
for (int i = 8-iLen; i; i--)
{
strcat(szNB,"0");
}
strcat(szNB,str);
}
else
{
strcpy(szNB,str);
}
for (int y = 28 , i = 0; y>=0; y -= 4 ,i++)
{
switch (szNB[i])
{
case '0':case '1':case '2': case '3':case '4':case '5':case '6':case '7':case '8':case '9':
n |= (szNB[i] - '0')<< y;
break;
case 'A':case 'B':case 'C':case 'D':case 'E':case 'F':
n |= (szNB[i] - '7')<< y;
break;
case 'a':case 'b':case 'c':case 'd':case 'e':case 'f':
n |= (szNB[i] - 'W')<< y;
break;
}
}
}
else
{//这里应该用来处理除了0x开头的16进制字符串的情况。
__asm int 3;
}
return n;
}
最后于 2019-6-14 00:19
被b23526编辑
,原因:
能力值:
( LV7,RANK:100 )
5 楼
谢谢了!!好好学习
能力值:
( LV2,RANK:10 )
6 楼
int c2d(unsigned char* a)
{
int ret=0,i=0;
unsigned char* s = a;
s = s + strlen((const char*)a)-1;
while (s>=a)
{
ret *= 10;
ret += ((*s) - '0');
s--;
}
return ret;
}
最后于 2019-7-5 22:38
被miWusn编辑
,原因:
能力值:
( LV2,RANK:10 )
7 楼
0x34 不就是 4的 asl码吗 %x 和 %c啊
能力值:
( LV2,RANK:10 )
8 楼
柒雪天尚
0x34 不就是 4的 asl码吗 %x 和 %c啊
楼主是想转为DWORD,不只是输出
能力值:
( LV2,RANK:10 )
9 楼
int c2d(char* a)
{
char * pVal = NULL;
int d = strtoul(a, &pVal , 10);
return d;
}
//Test..............
void main()
{
unsigned char a[] = { 0x34, 0x35, 0x36, 0x37, 0x39, 0 }; //45679
int b = c2d((char *)a);
printf("%d\n", b);
getchar();
}
哇~~~ 你们是用这么多代码炫富吗??? 楼主的要求其实很简单.