【题目描述】编写一个程序,将输入的十进制数转化为二进制表示。例如:输入十进制数64,输出二进制数1000000.
【代码实现】
c
// 十进制/二进制转化器
# include <stdio.h>
int main()
{
int num;
printf("Please input a number:");
scanf("%d", & num); // 输入十进制数
int a[50] = {0}, len = 0;
if (num == 0) { // 十进制数0的二进制表示是0
++len;
}
int tmp_num = num;
while (tmp_num) { // 除2取余
a[len++] = tmp_num % 2;
tmp_num /= 2;
}
printf("%d's binary representation:", num);
for (int i = len - 1; i >= 0; --i) { // 逆序输出
printf("%d", a[i]);
}
return 0;
}
【书上参考答案】
c
# include "stdio.h"
# include <conio.h>
void deTobi(int a) // 将十进制数转化为二进制数,并打印在屏幕上
{
int i = 0, stack[10], r, s;
do {
r = a / 2; // 商
s = a % 2; // 余数
stack[i] = s;
if (r != 0) {
++i;
a = r; // 将a整除2的结果作为下一个整除2的对象
}
} while (r); // 循环直到商r为0为止
for (; i >= 0; --i) {
printf("%d", stack[i]);
}
printf("\n");
}
int main()
{
int a;
printf("Please input a Decimal digit\n");
scanf("%d", & a);
deTobi(a);
getche();
return 0;
}