int hex(unsigned long int x, char *a)
int main()
{
char a[9] = {0}
int n
unsigned long int x
scanf("%lu",&x)
n=hex(x,a)
printf("n=%d\n",n)
puts(a)
return 0
}
int hex(unsigned long int x, char *a)
{
char t[]="0123456789ABCDEF"
int n
if(x<16)
{
a[0]=t[x]
return 1
}
n=hex(x/16,a)
a[n]=t[x%16]
return 1+n //这里为什么要是1+n ?
}
----------------你的代码不对-------------------我改了一下!
1+n就是 返回高位的位置比如 2048 那么应该就是 800
分析 16进来
if(x<16)
{
a[0]=t[x]
return 1
}
第一次x=2048不执行
n=hex(x/16,a)
if(x<16)
{
a[0]=t[x]
return 1
}
第二次x=128不执行
n=hex(x/16,a)
if(x<16)
{
a[0]=t[x]
return 1
}
第三次x=8 a[0]=8返回1
那么到第二次也就是128的这次 a[n]=t[x%16] n=1;结束后a=“80”
返回的是2 n+1啊
到2048的这次也就是第一次a[n]=t[x%16] n=2 结束后 a=“800”
最后返回2+1 就是3
多个C文件, 但这多个C文件中只能有一个Main函数。 你就在有Main函数的文件里,用extern来引导别的C文件里的函数就可以了比如说: Main.c
#include<reg51.h>
extern delay()
void main()
{
while(1)
{
//你是不是这个意思!!!! 希望你有帮助!
}
}
LCD1602.c
#include<reg51.h>
void delay()
{
//
}