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

Универсальный конвертер систем счисления - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Set и get или открытое поле http://www.cyberforum.ru/cpp-beginners/thread1827185.html
Доброго времени суток, форумчане! Имеет ли смысл делать set и get методы для закрытого поля, если выполняется по сути только присваивание (без проверок) и получение значения? В каких случаях лучше закрывать поля, а в каких открывать?
C++ Найти элемент массива на который делятся все остальные Условие задачи: В массиве из n целых чисел найти и распечатать элемент на который делятся все остальные, если такового элемента нет, то распечатать слово "нет" Я в С++ еще новичок, поэтому если не сложно, объясните как можно легче и понятнее. http://www.cyberforum.ru/cpp-beginners/thread1827171.html
Обработать вещественное число согласно условию C++
Всем привет! У меня есть число , припустим , это 0,12345678 мне надо из этого числа сделать следующее посунуть его на 2 знака вправо - 12,345678 до запятой сделать ноль - 0,345678 и убрать после 4 знаков после запятой все цифры - 0,3456 кто-то знает как этосделать?
Найти в последовательности, количество пар подряд идущих отрицательных элементов C++
Задача звучит так: Найти в последовательности чисел, заданных пользователем с клавиатуры, количество случаев, когда два члена подряд отрицательные. Помогите пожалуйста разобраться с чем здесь нужно работать, с циклами или с массивами. Задание вроде как в разделе циклов, но не могу сообразить как это выполнить.
C++ Библиотеки для решения (недоопределённых) систем линейных уравнений http://www.cyberforum.ru/cpp-beginners/thread1827085.html
Знает кто-нибудь сабж?. Если система недоопределена, то нужно в некотором формате отдавать её общее решение, ну или ФСР. Слышал про Eigen, но так и не смог понять, умеет ли она решать недоопределённые системы Ещё недоопрёделённость системы может выясниться в ходе её решения (например, если она линейно-зависима)
C++ Написать программу, которая предложит схему прохождения всех людей через мост за наименьшее время #include <iostream> #include <math.h> #include <conio.h> using namespace std; int main() { int n, i, min, m; cin >> n; int *A = new int; for (i = 0; i < n; i++) { cout << "Enter A:"; подробнее

Показать сообщение отдельно
Invader0x7F
Helper C/C++
 Аватар для Invader0x7F
264 / 141 / 56
Регистрация: 22.09.2016
Сообщений: 478
Завершенные тесты: 4
16.10.2016, 14:44     Универсальный конвертер систем счисления
Deniska07, вот написал проверяйте:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream> 
 
using namespace std;
 
int main()
{
    __int64 n = 256; 
    __int64 base_in = 11, base_out = 13;
    char s_n[256] = "1A8A\0", s_out[256] = "\0";
 
    if (base_in < 11 && base_out < 11)
    {
        __int64 t = 0, out_dec = 0;
        // Выполняем перевод из любой системы исчисления base_in в систему исчисления с основой 10
        // путем деления как это уже обговаривалось в предыдущем посте.
        for (__int64 n_val = n; n_val >= 1; n_val /= 10)
            out_dec += (n_val % 10) * __int64(pow(base_in, t++));
 
        __int64 q = 0, out_t = 0;
        // Переводим из системы исчисления с основой 10 в любую систему исчисления с основой base_out
        for (__int64 n_val_t = out_dec; n_val_t >= 1; n_val_t /= base_out)
            out_t += (n_val_t % base_out) * __int64(pow(10.0, q++));
 
        std::cout << "n = " << n << "(" << base_in << ")" << " => " << out_t << "(" << base_out << ")" << endl;
    }
 
    else if (base_in >= 11 && base_out < 11)
    {
        __int64 out_dec = 0; __int64 t = 0;
        for (__int64 r = strlen(s_n) - 1; r >= 0; r--)
        {
            __int64 n_digit = ((s_n[r] >= 'A') && (s_n[r] <= 'F')) ? 
                (s_n[r] - 'A') + 10 : (s_n[r] - '0');
 
            out_dec += n_digit * __int64(pow(base_in, t++));
        }
 
        __int64 q = 0, out_t = 0;
        // Переводим из системы исчисления с основой 10 в любую систему исчисления с основой base_out
        for (__int64 n_val_t = out_dec; n_val_t >= 1; n_val_t /= base_out)
            out_t += (n_val_t % base_out) * __int64(pow(10.0, q++));
 
        std::cout << "n = " << n << "(" << base_in << ")" << " => " << out_t << "(" << base_out << ")" << endl;
    }
 
    else if (base_in < 11 && base_out >= 11)
    {
        __int64 t = 0, out_dec = 0;
        // Выполняем перевод из любой системы исчисления base_in в систему исчисления с основой 10
        // путем деления как это уже обговаривалось в предыдущем посте.
        for (__int64 n_val = n; n_val >= 1; n_val /= 10)
            out_dec += (n_val % 10) * __int64(pow(base_in, t++));
 
        __int64 q = 0, out_t = 0;
        // Переводим из системы исчисления с основой 10 в любую систему исчисления с основой base_out
        for (__int64 n_val_t = out_dec; n_val_t >= 1; n_val_t /= base_out)
            s_out[q++] = ((char)((n_val_t % base_out) < 10 ? (n_val_t % base_out) + '0' : ('A' + ((n_val_t % base_out) - 10))));
 
        int m = strlen(s_out) - 1;
        for (int v = 0; v < strlen(s_out) / 2; v++, m--)
            std::swap(s_out[v], s_out[m]);
 
        std::cout << "s_n = " << s_n << "(" << base_in << ")" << " => " << s_out << "(" << base_out << ")" << endl;
    }
 
    else if (base_in >= 11 && base_out >= 11)
    {
        __int64 out_dec = 0; __int64 t = 0;
        for (__int64 r = strlen(s_n) - 1; r >= 0; r--)
        {
            __int64 n_digit = ((s_n[r] >= 'A') && (s_n[r] <= 'F')) ?
                (s_n[r] - 'A') + 10 : (s_n[r] - '0');
 
            out_dec += n_digit * __int64(pow(base_in, t++));
        }
 
        __int64 q = 0, out_t = 0;
        // Переводим из системы исчисления с основой 10 в любую систему исчисления с основой base_out
        for (__int64 n_val_t = out_dec; n_val_t >= 1; n_val_t /= base_out)
            s_out[q++] = ((char)((n_val_t % base_out) < 10 ? (n_val_t % base_out) + '0' : ('A' + ((n_val_t % base_out) - 10))));
 
        int m = strlen(s_out) - 1;
        for (int v = 0; v < strlen(s_out) / 2; v++, m--)
            std::swap(s_out[v], s_out[m]);
 
        std::cout << "s_n = " << s_n << "(" << base_in << ")" << " => " << s_out << "(" << base_out << ")" << endl;
    }
 
    std::cin.get();
}
 
Текущее время: 02:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru