软件: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个元素,输出一个空格
}
}
}
运行结果如下: