本帖最后由 zhuotuzi 于 2019-12-4 23:49 编辑
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- int Hex2Dec(char tem)
- {
- if((tem=='A')||(tem=='a')) return 10;
- else if((tem=='B')||(tem=='b')) return 11;
- else if((tem=='C')||(tem=='c')) return 12;
- else if((tem=='D')||(tem=='d')) return 13;
- else if((tem=='E')||(tem=='e')) return 14;
- else if((tem=='F')||(tem=='f')) return 15;
- else if((tem>='0')&&(tem<='9')) return tem-'0';
- }
- int AsciiHexToInt(char *p)
- {
- int val=0;
- char tt;
- unsigned char i = strlen(p);
- printf("\n字符串长度=%d\n",i);
- while(i>0)
- {
- tt=*p++;
- val += (Hex2Dec(tt)*pow(16,(i-1)));
- i--;
- }
- // val +=Hex2Dec(*(p++))*16^((i--)-1);
- return val;
- }
- int main()
- {
- int i=0;
- char str[16]={0};
- char id[40];
- while(1)
- {
- /*
- printf("请输入一个10进制整数:");
- scanf("%d",&i);
- itoa(i,str,10);
- printf("这个10进制整数是:%s\n",str);
- itoa(i,str,16);
- printf("这个16进制整数是:%s\n",str);
- printf("----------------------------\n");
- printf("请输入一个16进制整数:");
- scanf("%x",&i);
- itoa(i,str,16);
- printf("这个16进制整数是:%s\n",str);
- printf("这个数的十进制是:%d\n",i);
- */
- printf("----------------------------\n");
- printf("请输入一个16进制整数:");
- scanf("%s",&id);
- printf("\n输入的字符串是%s\n",id);
- i=AsciiHexToInt(id);
- printf("i=%d\n",i);
- }
- }
|