Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2016, 08:44   #1
Лакира
Пользователь
 
Регистрация: 17.11.2016
Сообщений: 28
По умолчанию C#. Перевод из двоичной в десятичную.

проблема: не переводит правильно из 10 в 2. (3)


Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("\n\n1) Перевод числа из десятичной системы счисления в двоичную\n");
            Console.Write("Введите исходное число в десятичной системе : ");
            int x = Convert.ToInt32(Console.ReadLine());
            double k = 0;
            int y;
            Console.Write("Число в двоичной системе счисления          : ");
            int[] o = new int[9];
            int[] o1 = new int[9];


            while (x > 0)
            {
                for (int i = 8; i >= 0; i--)
                {
                    o[i] = x % 2;
                    x = x / 2;
                }
            }

            for (int i = 0; i < 9; i++)
            {
               
                    o1[i] = o[i];
                
            }
            for (int i = 0; i < 9; i++)
            {
                Console.Write(o[i]);
            }
            Console.WriteLine("\n\n2) Поменять триады");



            for (int i = 0; i < 3; i++)
            {
                y = o1[i];
                o1[i] = o1[i + 6];
                o1[i + 6] = y;
            }
            for (int i = 0; i < 9; i++)
            {
                Console.Write(o1[i]);
            }

            Console.WriteLine("\n\n3)Перевод из двоичной системы в десятичную");



            for (int i = 0; i <9; i++)
            {
                k += o1[i] * Math.Pow(2, i);
            }
            Console.WriteLine(k); Console.ReadLine();
        }
    }
}

Последний раз редактировалось Лакира; 19.11.2016 в 08:49.
Лакира вне форума Ответить с цитированием
Старый 19.11.2016, 09:40   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Алгоритм у Вас не очень хороший. Например, не надо использовать возведение в степень там, где оно не нужно.
при переводе в двоичное число Вы используете цикл for, поэтому дополнительный while не нужен от слова "совсем" и т.д.
нет проверки, что введённое десятичное число положительное и меньше 512 (догадайтесь, почему такое ограничение!).

а ещё вопрос.
зачем "Поменять триады" и что под этим подразумевается?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.11.2016, 10:16   #3
Лакира
Пользователь
 
Регистрация: 17.11.2016
Сообщений: 28
По умолчанию

поменять 1 и 3 триаду по заданию. Здесь я забыла указать.
А while разве не выполняет роль проверки, то есть делить до тех пор, пока число больше 0?
Лакира вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод 5-и значного числа из двоичной в десятичную систему счисления alex1998109 Visual C++ 0 04.10.2016 12:31
Перевод из двоичной системы в двоично-десятичную (assembler) Dolgan Фриланс 2 27.01.2011 18:01
Pascal ABC. Перевод из двоичной в десятичную систему счисления. ARTEM_KA Помощь студентам 4 17.11.2010 22:15
си++ перевод числа из двоичной системы в десятичную. Bonne Помощь студентам 1 13.04.2010 22:07
Перевод числа из двоичной системы в десятичную С++ kontroller Помощь студентам 2 15.02.2010 20:39