答案:
#include <stdio.h>
int main()
{
int n = 0, j = 0;
while (scanf("%d", &n) != EOF && (n>0 && n<1000)) //多组输入
{
int arr[32], i = 0;
while (n > 0)
{
arr[i++] = n % 2; //除2取余法
n /= 2;
}
for (j = i - 1; j >= 0; j--) //倒序打印
{
printf("%d", arr[j]);
}
printf("\n");
}
return 0;
}
注:十进制数转换为二进制数采用的方法为(整数:除2取余法)(小数:乘2取整法),举例12转换为2进制就是先不断除2,得到的商为6,3,1,0,此时对应的余数为0,0,1,1,再将余数倒序就得到了1 1 0 0,即12的二进制数;小数举例:3.2转换为2进制就是先将3用整数的除2取余法得到1 1,再将0.2不断乘2,得到的积为0.4,0.8,1.6(此时把整数部分1提出来变为0.6),1.2(同上变为0.2),0.4……,此时对应提出来的整数部分为0,0,1,1,0……再将整数部分顺序就得到1 1.0 0 1 1 0……,即3.2的二进制数。