Problem Description
将一个十进制的数转换为二进制数。
Input
输入一个十进制的数。
Output
输出对应的二进制数。
Sample Input
1030
Sample Output
10000000110
解题思路
经验总结
- 十进制转Q进制:除基取余,基为Q,逆序输出。
代码实现(C)
#include <stdio.h>
#define MaxSize 10000
int z[MaxSize]; // z存放q进制数结果
int dToq(int y, int Q) { // y为十进制数
int num = 0; // num为z数组下标
do {
z[num++] = y % Q; // 取余
y /= Q; // 除基
} while (y != 0);
return num; // 返回q进制数位数
}
void printZ(int num) { // 输出q进制数z
for (int i = num - 1; i >= 0; --i) // 从后往前输出
printf("%d", z[i]);
printf("\n");
}
int main() {
int y;
while (~scanf("%d", &y)) {
int num = dToq(y, 2);
printZ(num);
}
return 0;
}