以下是引用XuMM_12在2012-12-3 20:53:43的发言:
#include
//函数功能把十进制转换成二进制
//函数第2个参数在主函数中分配内存,定义一个全0数组即可
int i=0;
void dec2bin(int source,char* bin)
{
if(source==0) return;
dec2bin(source/2,bin);
bin=(char)(source%2+0x30);
i++;
}
//函数功能把十进制转换成二进制
//函数第2个参数在主函数中分配内存,定义一个全0数组即可
//这个函数是个错误函数,可是不知道哪里错了
void _dec2bin(int source,char* bin)
{
if(source==0) return;
_dec2bin(source/2,bin+1);//改这里~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ,然后再加个倒序排列就可以了
*bin=(char)(source%2+0x30);
}
int main()
{
char source[20];
for(int i=0;i<20;i++) source='\0';
dec2bin(24,source);
printf("注意这里能得到正确的字串24(10)=%s(2)\n",source);
for(i=0;i<20;i++) source='\0';
_dec2bin(24,source);
printf("提示: 这里无法得到正确的字串24(10)=%s(2)\n",source);
return 0;
}
/*
实验结果:
D:\c_source\t1\Debug>t1
注意这里能得到正确的字串 24(10)=11000(2)
提示: 这里无法得到正确的字串24(10)=0(2)
*/
唉,难道就没办法了吗
这样是逆序了
然后再正序过来 把原来的简单的函数 变得复杂起来
还是第一种好啊