首先,介绍十进制转二进制的方法:
十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
所以,十进制转为二进制的代码如下:
#includevoid main() { int x,m,n,i; int a[16]={0};//定义数组并赋值 printf("请输入一个十进制的数:"); scanf("%d",&m);// printf("将%d转化为二进制:n",m); for(i=0;i<16;i++)//对i循环16次 { x=m%2;//m对2取余得到的值赋值给x n=m/2;//m整除2的值赋值给n m=n;//n的值再赋值给m以进行下一轮 a[i]=x;//将取余的值赋给数组a } for( i=15;i>=0;i--)//让取余后的值从右往左依次输出 { printf("%d",a[i]); if(i%4==0)//让每四个数一组依次输出,一个空格为距离 { printf(" "); } } }
十进制的数用八进制来表示,我们可以用 八余法来写:
#includeint main() { int x,m,n,i; int a[8]={0}; printf("请输入一个十进制的数:"); scanf("%d",&m); printf("将%d转化为一个八进制:n",m); for(i=0;i<8;i++) { x=m%8; n=m/8; m=n; a[i]=x; } for(i=0;i<8;i++) { printf("%d*8的%d次方+",a[i],i); //if("i%4==0"); //{ printf(" "); //} } }
得到如下结果:



