【发布时间】:2017-08-30 16:42:18
【问题描述】:
我想问是否有办法将整数添加为 char 值并创建一个字符串。我写了一些代码,但只检测到最后一个数字
void binary(int decimal) {
int modulus;
char bin[9];
while (decimal != 0) {
modulus = decimal % 2;
sprintf(bin, "%d", modulus);
if (modulus == 1) {
decimal--;
}
decimal = decimal / 2;
}
puts(bin);
}
如果小数点为10,则仅保留1 而不是0101。我该如何解决?我正在使用 Turbo C++ 3.0。
【问题讨论】:
-
sprintf(bin, "%d", modulus);你总是从前面写。 -
这不是微不足道的,因为它把数字颠倒了。我已经发布了一个答案,但它打印了反转的二进制字符串,所以不好。之后递归或反转字符串应该可以解决它。
-
-
@Jean-FrançoisFabre OP 的预期结果是相反的。例如
0101:10(base 10) -
注意:除法前不需要减少奇数。例如。整数除法中的 5/2 是 2,因为它向下舍入