Задать вопрос
@Moskaa

Программа перевода из десятичной системы счисления в двоичную, правильно?

Составил программу на перевод из десятичной системы счисления в двоичную, я проверил несколько чисел и перевод итоги перевода были удовлетворительными. Но я не уверен, есть ли такие числа, которые будут переведены неправильно(Учитывая, что метод не принимает отрицательные значения).

И ещё, если есть какие-то замечания по написанной программе, то напишите, пожалуйста. Буду очень благодарен.

using System;

namespace ConsoleApp
{
    class Class
    {
        static void Main(string[] args)
        {
            BinaryTranslation(10);
        }

        static void BinaryTranslation(int number)
        {
            List<int> binar = new List<int>();

            int quotient = 1;

            while(quotient != 0)
            {
                if(number % 2 == 1)
                {
                    number -= 1;

                    binar.Add(1);
                }
                else
                {
                    binar.Add(0);
                }

                quotient = number / 2;
                number = number / 2;
            }

            binar.Reverse();
            Console.WriteLine(string.Join("", binar));
        }
    }
}
  • Вопрос задан
  • 45 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
На отрицательных числах будет ошибка.
Ну и проще можно сделать.
static void BinaryTranslation(int number)
{
    List<int> binar = new List<int>();
    do
    {
        binar.Add(number % 2);
        number /= 2;
    }
    while (number > 0);

    binar.Reverse();
    Console.WriteLine(string.Join("", binar));
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@rPman
Отрицательные числа
Ответ написан
GavriKos
@GavriKos
Учитывая, что метод не принимает отрицательные значения

Нет, согласно объявлению метода - расчитан. Но это можно все предусмотреть. Как и в объявлении метода, так и в обрабоке метода. И это бы как раз стоило переделать - т.е. или ограничить входные данные типом, или обработать ошибку.

Дальше. По красоте - метод должен возвращать бинарное представление, а дальше уже выводить в консоль или еще куда - это задача не метода.

Дальше. Честно я не понял зачем нужна переменная quotient. По моему можно без нее.

Ну и еще метод должен называться глаголом в идеале )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы