1.代码如下:
#include<stdio.h>
int main(void)
{
int i, j, m, n;
int arr[16] = { 0 };
printf("请输入一个十进制数:\n");
scanf("%d",&n);
for (m = 0; m < 15; m++)
{
i = n % 2;
j = n / 2;
n = j;
arr[m] = i;
}
for (m = 15; m >= 0; m--)
{
printf("%d",arr[m]);
if (m % 4 == 0)
{
printf(" ");
}
}
return 0;
}
2.个人见解:
该程序主要针对正数的十进制数转换为二进制数。
第一个for循环,因为最高位是符号位,所以,仅仅从0取到14。
第二个for循环,从15取到0。因为第一个for循环,所计算出来的值是“倒”着的。所以,从最后一位开始向前取。而最后一位默认是0。因为正数时,首字符为0,所以,符合要求。故而,是从后向前取。
3.符号解释:
%:取余运算符。