一、关键技术:
将十进制转换为二进制的具体过程有以下的几个要点:
(1.)要用数组来存储每次对2取余的结果,所以在对数据类型的定义时,要定义数组并将其余全部数据元素初值赋值为0。
(2.)两处用到for循环,第一次for循环为0~14(本实例当中只考虑基本整型中的正整数部分的转换,所以最高位始终为0),第二次for循环为15~0,这里大家注意不能改成0~15,因为在将每次对2取余的结果存入数组时是从a[0]开始存储的,所以输出时要从a[15]开始输出,这也符合我们平时的计算过程。
(3.)“%”是取余运算符号,“%”两侧均应该是整型数据,“/”是除法运算符号,两个整数相除的结果就是整数,运算的两个数中有一个数为实数,则结果是double型的。
具体的代码运行如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main()
{
int i, j, m,n; //定义变量i,j,n,m
int a[16] =
{
0
}; /*定义数组a,并将数组a初始化为0*/
system("cls");/*清屏函数*/
printf("please input the decimalism number(0-32767);\n");
scanf("%d", &n); /*输入n的值*/
for (m = 0; m < 15; m++) /*for循环0到14,最高位为符号位,本题始终为0*/
{
i = n % 2; /*取2的余数*/
j = n / 2; /*取被2整除的结果*/
n = j; /*将余数存入数组a当中*/
a[m] = i;
}
for (m = 15; m >= 0; m--)
{
printf("%d", a[m]); /*使用for循环,将16个数组从前往后进行输出*/
if (m % 4 == 0)
printf(" "); /*每四个元素,输出一个空格*/
}
return 0;
}
代码的运行结果如下: