返回列表 发帖

关于C的问题

偶最近在学C,有个问题:就是编写一个C程序让其把输入的十进制数转换成二进制数~
偶刚学,基础还很差,希望能讲的详细一点!谢谢

关于C的问题

偶已经用U盘拷回去了,偶菜,要慢慢消化!~~~
谢谢版主

TOP

关于C的问题

[这个贴子最后由x86在 2005/06/06 10:51pm 第 1 次编辑] 方法有很多,这里介绍的只是临时想的一个简单一点的方法: 就是把要转换的整数的每个位存到一个数组中,然后打印出来. 利用逻辑或运算获取其每一位的值. 另外有很多办法,比如我们书本上学习10进制转2进制的方法也很好,你可以自己试着做一下:) #include #include void main() {int i,j,k; unsigned int out[16]; unsigned int temp[16]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,65536}; printf("please input the number (0-131071):\n"); scanf("%d",&i); if(i>=131072) {printf("input error! range 0 - 131071\n"); exit(0); } memset(&out,0,sizeof(unsigned int)*16); for(k=0;k<16;k++) {j=(i|temp[k]); if(j>i) out[16-k-1]=0; if(j==i) out[16-k-1]=1; } k=0; check:if(out[k]==0) {if(k==15) {printf("0"); exit(0); } k++; goto check; } while(k<16) {printf("%d",out[k]); k++; } }

TOP

返回列表 回复 发帖