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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2013, 19:40   #1
reprain
Пользователь
 
Регистрация: 07.10.2012
Сообщений: 16
По умолчанию

Преобразовать заданное число из p –ичной системы счисления в q –ичную (q ≤ 16; исходное число имеет не более n знаков).

Моя идея такова. Перевожу из неизвестной сс во 2,затем из 2 в нужную.
код:
Код:
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {int chx;
        int ch2;
            int xss=Convert.ToInt32(Console.ReadLine()); //xss-нужная сс
            chx = Convert.ToInt32(Console.ReadLine());
            while (chx > 0)
            
            {
                if ((chx % 2) = 1)    // chx-число в неизвестной сс
                   {ch2='1'+ch2;                //ch2-число chx переведенное во 2 сс
                     chx=chx /2}
                  else 
                       {ch2='0'+ ch2
                    chx=chx /2};
            }
            while (ch2>xss)
            {x=cx% xss;
            if (x>=10)  
            (10='A'
             11='B'
             12='C'
             13='D'
             14='E'
             15='F')
            
            Добавить х в строку (как????)

            ch2=ch2/ xss
            }
            перевернуть строку строку х (как????)
        }
    }
}

псевдокод,если кому интересно
Код:
Пока сhХ>0                                                //схХ-входное число в люблй СС
   Если chX mod 2=1 ,                                    
     тогда
       Сх2=’1’+ сх2                                           //cх2 это схХ приведенное к 2сс
          сhХ=сhХ div 2
             Иначе
                сх2= ‘0’+сх2
                   сhХ=сhХ div 2 
                      конец цикл.

                       Пока сх2>нужной СС
                     Х=сх2 mo
d нужная СС
                 Если если х >10,то замена х на букву

             Сх2=сх2 div нужная СС
         Добавить х в строку
     Конец цикл
Перевернуть строку с числами.
мб кому что непонятно,спросите,я уточню...

Последний раз редактировалось Stilet; 21.05.2013 в 21:45.
reprain вне форума Ответить с цитированием
Старый 21.05.2013, 21:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Рекомендую к ознакомлению: http://msdn.microsoft.com/en-us/library/14kwkz77.aspx
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2013, 22:31   #3
reprain
Пользователь
 
Регистрация: 07.10.2012
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Рекомендую к ознакомлению: http://msdn.microsoft.com/en-us/library/14kwkz77.aspx

эта функция переводит только в 2,4,8,10 и 16 сс. А мне нужно из любой в любую. Например из 3 в 14 или 7 в 5. Увы,не все так просто,как хотелось бы
reprain вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки в коде.. arh42kem Windows Forms 10 10.04.2013 18:42
Ошибки в коде C++ BloodWolf Помощь студентам 3 28.11.2012 15:39
C++ ошибки в коде Straiker900 Помощь студентам 0 18.01.2012 19:48
ошибки и недочеты в коде Денис16 Win Api 2 19.11.2011 17:24
Ошибки в Элементарном коде! Серёга0629 Microsoft Office Excel 22 23.08.2011 13:34