Форум программистов, компьютерный форум CyberForum.ru

Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления - C++

Восстановить пароль Регистрация
 
Монтгомери
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 112
11.06.2014, 00:06     Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления #1
На вычислительной практике дали такое задание:

С клавиатуры вводятся 2 положительных целых числа: число A (в системе счисления с основанием p) и число B (в системе счисления с основанием q). Необходимо вычислить и вывести на экран число C в системе счисления с основанием r:
p=5, q=6, r=3, C=A-B
При вводе чисел A и B должно автоматически проверяться, является ли их форма записи числа корректной в соответствии с выбранной системой счисления.

Как проверить корректность числа в заданной системе счисления? Это основной вопрос.
Хотя, если подскажете, как переводить оба числа, к примеру, в десятичную систему, буду ещё больше благодарен.

Заранее спасибо
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2014, 00:06     Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления
Посмотрите здесь:

C++ Перевод из 10-ой в любую другую систему счисления.
C++ Простейший алгоритм перевода числа из 10 системы счисления в 16 ричную систему счисления
C++ перевод числа в другую систему счисления
Перевести в 16 ричную систему счисления C++
C++ Перевод чисел из двоичной системы счисления в систему счисления кратной степеням двойки и обратно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
you_rule
 Аватар для you_rule
56 / 57 / 21
Регистрация: 08.03.2014
Сообщений: 138
11.06.2014, 00:33     Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления #2
Монтгомери, чтобы проверить корректность всего числа, необходимо проверить каждую цифру. Каждая цифра должна быть меньше основания системы счисления и больше -1. Исключением является система счисления с основанием 1, здесь все числа должны быть равны единице.

Переводите каждое число в десятичную сист. сч., а затем в нужную, например:
из двоичной в десятичную
1010=0* 2^0 + 1* 2^1 + 0* 2^2 + 1* 2^3=0+2+0+8=10
Тоесть начиная с младшего разряда (нулевой 0) находим сумму произведения цифры с разрядом I на основание системы счисления в степени I.
Монтгомери
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 112
11.06.2014, 00:53  [ТС]     Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления #3
А как именно брать каждую цифру отдельно? Брать остатки от деления на 10, 100, 1000 и т.д., а потом уже сравнивать? Тогда это в цикле надо делать, но как определить, до каких пор продолжать это действие?

И ещё: как перевести результат из десятичной в, к примеру, троичную? (описал я в шапке только один из 15 вариантов).
you_rule
 Аватар для you_rule
56 / 57 / 21
Регистрация: 08.03.2014
Сообщений: 138
11.06.2014, 01:06     Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
вывод всех цифр.
C++
1
2
3
4
5
6
int chislo=2326462452;
while (chislo>0)
{
     cout<<chislo%10;
     chislo/=10;
}
вот пример перевода из десятичной в двоичную
C++
1
2
3
4
5
6
7
8
    int dec, bin=0, j;
 
    cin >> dec;
    for(j=0; dec>0; j++)
    {
        bin+=(dec%2)*pow(10.0,j);
        dec/=2;
    }
здесь dec - исходное число, bin - конечное двоичное, на форуме уже есть ответы на многие вопросы
Yandex
Объявления
11.06.2014, 01:06     Проверить корректность числа в заданной системе счисления и перевести в другую систему счисления
Ответ Создать тему
Опции темы

Текущее время: 18:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru