【题目描述】编写一个程序,将输入的十进制数转化为二进制表示。例如:输入十进制数64,输出二进制数1000000.
【代码实现】
// 十进制/二进制转化器
# 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;
}
【书上参考答案】
# 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;
}