有C语言编写一函数,输入一十六进制数,输出相应的十进制数

2024-11-12 11:58:23
推荐回答(3个)
回答1:

/*按要求,输入输出都在子函数中进行*/
#include
void fun(void)
{
int a=0,i;
char str[6];
printf("输入十六进制数:\n");
gets(str);
for(i=0;str[i]!='\0';i++)
if(str[i]>='0'&&str[i]<='9')
a=a*16+str[i]-48;
else
if(str[i]>='a'&&str[i]<='z')
a=a*16+str[i]-'a'+10;
else
a=a*16+str[i]-'A'+10;
printf("对应的十进制数为:%d\n",a);
}

int main(void)
{
fun();
getchar();
}

回答2:

int lox_16,lox_10;
cin>>hex>>lox_16; //c中用(scanf())输入的是4位16进制数

//将16进制数转换为10进制数 注意lox_16已经为16进制数
lox_10=lox_16/1000*pow(10,3)+lox_16/100%10*pow(10,2)+lox_16%100/10*pow(10,1)+lox_16%10*pow(10,0); //lox_16 是4位的,不是4位,可以自己以这种形式编一个循环

回答3:

#include
void main( void )
{
int i;
printf( "\n\nEnter an HEX number :\n");
scanf( "%x", &i );
printf( "The decimal number is: %d \n", i);
}

运行结果:

Enter an HEX number :

0xffff
The decimal number is: 65535
请按任意键继续. . .