Преобразуване на дадено число от десетична в двоична бройна система.
Здравейте,
Изцяло нов съм в света на програмирането и почнах да чета книгата "Въведение в програмирането със C#". На една от задачите в глава 6 се затруднявам в решението. Става дума за въпрос 12. Напишете програма, която преобразува дадено число от десетична в двоична бройна система. В интеренет намерих информация за начина на преобразуване, а именно: За да превърнем число от десетична в двоична бройна система, трябва да го разделяме на 2, докато частното стане нула като записваме остатъците вдясно (ако числото не може да се дели на 2, записваме единица, а ако може - нула).
Освен това намерих доста решения на задачата, някои са прекалено сложни, други само с метода Convert.ToString(n, 2). Аз обаче искам да използвам само loops и съответно искам да разбера защо моят код не работи, след като то моята логика следвам това, което е записано на теория.
Ето го и моя код:
Console.Write("Enter N: ");
int n = int.Parse(Console.ReadLine());
int divider = 2;
int a;
for (int i = n; i <= 0; i /= 2)
{
if (i % divider == 0)
{
a = 1;
Console.Write(a);
}
else if (i % divider != 0)
{
a = 0;
Console.Write(a);
}
}
Благодаря, предварително.
Благодаря за помощта.
Останах си с използването на for и мисля, че се получи. Кода ми съм го сложил като коментар в мненията под и над твоето, ако искаш да видиш как се получи.
Някой да ми даде съвет как се принтира в обратен ред? Сигурно е супер елементарно, но просто не ми идва на ум :/
Става дума, че искам да принтна "а" в ето тази програма, но в обратна поредност:
int n = 95;
int a = 0;
for (int i = 0; i < 8; i++) {
a = n % 2;
n /= 2;
System.out.print(a);
}