Loading...
imollov avatar imollov 1 Точки

Преобразуване на дадено число от десетична в двоична бройна система.

Здравейте,

Изцяло нов съм в света на програмирането и почнах да чета книгата "Въведение в програмирането със 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);
        }
      }

Благодаря, предварително.

Тагове:
0
Programming Basics 16/09/2016 09:41:19
damyan91 avatar damyan91 91 Точки

Здравей! На пръв поглед, мисля че логиката ти не е много правилна. За конкретната задача май ще е по-добре да се използва while-цикъл. В отделна променлива запазваш остатъка от делението на две (N % 2), който може да е 0 или 1. След това делиш N на 2   (N / 2) докато N e различно от 0. Би било удобно да използваш List, където да добавяш остатъка от делението N % 2. След като излезеш от while цикъла (N = 0) и всички разлики /0 или 1/ са добавени в List-а, трябва да го принтираш в обратен ред. Това на пръв поглед. Може да има и по-лесни решения.  

0
imollov avatar imollov 1 Точки

Благодаря за помощта. yes

Останах си с използването на for и мисля, че се получи. Кода ми съм го сложил като коментар в мненията под и над твоето, ако искаш да видиш как се получи.

0
ivaiva avatar ivaiva 0 Точки

Някой да ми даде съвет как се принтира в обратен ред? Сигурно е супер елементарно, но просто не ми идва на ум :/

Става дума, че искам да принтна "а" в ето тази програма, но в обратна поредност:

        int n = 95;
        int a = 0;
        for (int i = 0; i < 8; i++) {
            a = n % 2;
            n /= 2;
            System.out.print(a);
    }

 

0
21/11/2017 16:50:11
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.