十进制转二进制

来源:互联网 发布:淘宝买毕业论文 编辑:程序博客网 时间:2024/04/29 17:16
#include<stdio.h>int dg(unsigned n,int c)//注意:参数类型是unsigned{if(n/2 != 0)c=dg(n/2,c);printf("%d",n%2);if((c+1)%4 == 0)printf(" ");return ++c;}int main(){int i=0,c=0,a[sizeof(int)*8]={0};//数组全部初始化为0printf("%d\n",sizeof(int));unsigned temp,u;temp=u=4294967295u;int tu=(int)u;printf("u=%u,tu=%d\n",u,tu);//输出二进制形式//方法一:位运算//大端法机器写法如下:/*while(i<sizeof(int)*8){printf("%d",(u>>i)&1);if((i+1)%4 ==  0)printf(" ");i++;}*///小端法机器写法如下:while(i<sizeof(int)*8){a[sizeof(int)*8-1-i]=(u>>i)&1;i++;}for(i=0;i<sizeof(int)*8;i++){printf("%d",a[i]);if((i+1)%4 == 0)printf(" ");}printf("\n");//方法二:递归除2(此方法与机器无关)dg(temp,c);printf("\n");return 0;}
水平有限,写的不好。
0 0
原创粉丝点击