c语言,下面是我写的十六进制转二进制的一个函数。想在主函数中输入十六进制数。子函数处理,如何传递?

2025-03-29 10:03:54
推荐回答(2个)
回答1:

#include
#define N 8
void transfer(int *a,int len,int n)
{
int i;
for(i=0;i!=len;i++)
{
a[len-1-i]=n%2;
n/=2;
}   
}
int main()
{
int n;
int b[N];
int i;
scanf("%x",&n);
transfer(b,N,n);
for(i=0;i!=N;i++)
{
printf("%d",b[i]);
if((i+1)%4==0)
printf(" ");
}
printf("\n");
return 0;
}

示例运行结果:

ff

1111 1111

回答2:

void transfer(int n, int *b)

{
int i;
for(i=0;i!=N;i++)
{
b[N-1-i]=n%2;
n/=2;
}
}