C语言 16进制转10进制 不用强制转换

来源:互联网 发布:青岛网络问政 编辑:程序博客网 时间:2024/06/17 14:43
#include<string.h>//要使用strlen获取字符串的长度#include<stdio.h>#include<math.h>int main(void){int i=0;int arraylength = 0;int total = 0;//初始化十进制结果为0int character = 0;char c[20]="huanghuang";scanf("%s",&c);arraylength = strlen(c);for(i=0;i<arraylength;i++){switch(c[i]){//从前往后获取每个字符的10进制数    case '0':character=0;break;case '1':character=1;break;case '2':character=2;break;case '3':character=3;break;case '4':character=4;break;    case '5':character=5;break;case '6':character=6;break;case '7':character=7;break;case '8':character=8;break;case '9':character=9;break;case 'a':character=10;break;case 'A':character=10;break;case 'b':character=11;break;case 'B':character=11;break;case 'c':character=12;break;case 'C':character=12;break;case 'd':character=13;break;case 'D':character=13;break;case 'e':character=14;break;case 'E':character=14;break;case 'f':character=15;break;case 'F':character=15;break;default:printf("输入错误,请重新输入");break;}total = total+character*(pow(16,(arraylength-i-1)));//pow函数是求几次方,需要引入math.h}printf("结果是%d",total);}

0 0