Я хотел спросить, есть ли способ добавить целые числа в качестве значений 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);
Ты всегда пишешь спереди. - person BLUEPIXY   schedule 30.08.2017bin
) каждый раз, когда вы пишете в него (но сохраняйте ссылку на начало строки для возврата). - person Hans Petter Taugbøl Kragset   schedule 30.08.20170101
:10
(основание 10) - person BLUEPIXY   schedule 30.08.2017sprintf
переопределяет строку, поэтому на каждой итерации вы начинаете заново. Вам нужно найти способ объединить строки - person king_nak   schedule 30.08.2017