题解 | #进制转换#
进制转换
http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include<stdio.h> #include<string.h> int main() { char in[1000]; while(scanf("%s",&in)!=EOF) { int len = strlen(in); int zhi=0,danwei=1;int xunhuan;int he=0; if(strlen >= 3)//manzu normal data { if(in[0]=='0'&&(in[1]=='x'||in[1]=='X'))//16data { for(int l=len-1;l>1;l--) {//zuihou yiwei kaishi chuli if(in[l]=='a'||in[l]=='A')zhi=10; if(in[l]=='b'||in[l]=='B')zhi=11; if(in[l]=='C'||in[l]=='c')zhi=12; if(in[l]=='d'||in[l]=='D')zhi=13; if(in[l]=='E'||in[l]=='e')zhi=14; if(in[l]=='F'||in[l]=='f')zhi=15; if(in[l]=='0')zhi=0; if(in[l]=='1')zhi=1; if(in[l]=='2')zhi=2; if(in[l]=='3')zhi=3; if(in[l]=='4')zhi=4; if(in[l]=='5')zhi=5; if(in[l]=='6')zhi=6; if(in[l]=='7')zhi=7; if(in[l]=='8')zhi=8; if(in[l]=='9')zhi=9; xunhuan = len-1-l; for(;xunhuan>0;xunhuan--) { danwei *=16; } he+=zhi*danwei; danwei =1; //单位及时清1 否则递增 } } printf("%d\n",he); } } return 0; } //标准库自带转换 手动转一下