软件:DEV,语言:C语言。
声明:本案例只考虑了整数(即int型),故无法进行小数之间的转换(例如float型,double型)。
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2整除十进制整数,可以得到一个商和余数;
再用2去除商,又会得到一个商和余数,
如此进行,直到商为小于1时为止,
然后把先得到的余数作为二进制数的低位有效位,
后得到的余数作为二进制数的高位有效位,依次排列起来。
代码如下:
#include"stdio.h"
int main()
{int m,n,k;int a[16]={0};printf("请输入一个0-32767之间的数字:");scanf("%d",&n);printf("十进制%d转换为二进制数是:\n",n);for(int i=0;i<15;++i){m=n%2; //取2的余数 k=n/2; //取被2整除的结果 n=k;a[i]=m; //将余数存入数组a数组中 }for(int i=15;i>=0;i--){printf("%d",a[i]);if(i%4==0){ printf(" "); //每输出4个元素,输出一个空格 }}
}
运行结果如下: