程序代码:
#include <stdio.h> //函数功能把十进制转换成二进制 //函数第2个参数在主函数中分配内存,定义一个全0数组即可 int i_ju=0; void dec2bin(int source,char* bin) { if(source==0) return; dec2bin(source/2,bin); bin[i_ju++]=(char)(source%2+0x30); } //函数功能把十进制转换成二进制 //函数第2个参数在主函数中分配内存,定义一个全0数组即可 //这个函数是个错误函数,可是不知道哪里错了 void _dec2bin(int source,char* bin) { if(source==0) return; _dec2bin(source/2,bin); *(i_ju+bin)=(char)(source%2+0x30); i_ju++; } int main() { char source[20]; for(int i=0;i<20;i++) source[i]='\0'; dec2bin(24,source); printf("注意这里能得到正确的字串24(10)=%s(2)\n",source); i_ju = 0; for(int i=0;i<20;i++) source[i]='\0'; //建议lz在这里把i定义为局部变量,不然i会变为全局变量的i,这样很容易影响到其他函数中的全局变量i; _dec2bin(24,source); printf("提示: 这里无法得到正确的字串24(10)=%s(2)\n",source); return 0; } //已经尽我所能的尊重原版了...
I have not failed completely