题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <stdio.h>
#include<math.h>
char set[16]="0123456789ABCDEF";
int find(char x)
{
int i=0;
for(i=0;i<16;i++)
{
if(x==set[i])
return i;
}
return -1;
}
int main() {
int x=0,i=0;
char num_str[11];//8位十六进制足以表示2的31次方-1,留1位放'\0'
scanf("%s",num_str);
for(i=2;i<10&&num_str[i]!='\0';i++)//前两位是“0x”
{
if(find(num_str[i])!=-1)
{
x=x*16+find(num_str[i]);
}
}
printf("%d",x);
}


上海得物信息集团有限公司公司福利 1166人发布