C++ Вопрос Перевод в системы счисления

Пользователь
Статус
Оффлайн
Регистрация
11 Дек 2018
Сообщения
286
Реакции[?]
81
Поинты[?]
3K
Всех приветствую, прощу помощи - нужно перевести число из 10 в 2 систему счисления максимально удобным способом (Я не нашел готовой функции на плюсах, возможно вы знаете), знаю насчёт strtol, hex, dec, oct - но это всё не то, можно перевести из 2 в 10, но никак не наоборот.
У меня половина сайтов заблокана потому что я из РФ, ну сами понимаете, поэтому по каким то форумам читал, поэтому не уверен что я полностью инет изучил, вдруг кто то знает, гении плюсов помогите..
 
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Дели число из десятичной системы на двойку, пока число не станет меньше двух. И снизу вверх записываешь остатки от деления (считай столбиком)
Т.е, если 11 в десятичной, это 1011 в двоичной
 
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Дели число из десятичной системы на двойку, пока число не станет меньше двух. И снизу вверх записываешь остатки от деления (считай столбиком)
Т.е, если 11 в десятичной, это 1011 в двоичной
Все это можно перевести с листка в программу
 
Легенда форума
Статус
Онлайн
Регистрация
10 Дек 2018
Сообщения
4,374
Реакции[?]
2,279
Поинты[?]
184K
Вот наглядный пример перевода (
Пожалуйста, авторизуйтесь для просмотра ссылки.
):
1646307598643.png

Полученный остаток нужно будет в конец массива числа добавлять (если ты через массивы реализуешь), например, используя push_back()
 
Последнее редактирование:
Бульдозер
Эксперт
Статус
Оффлайн
Регистрация
18 Июл 2019
Сообщения
1,231
Реакции[?]
508
Поинты[?]
2K
C++:
#include <iostream>
#include <string>

using namespace std;

string answer;

#define system 2;

string recurssion(int a)
{
    int temp = a % system;

    a /= system;

    answer += to_string(temp);

    if (a != 0)
        recurssion(a);
    else
    {
        reverse(answer.begin(), answer.end());

        return answer;
    }
}

int main()
{
    setlocale(LC_ALL, "rus");

    while (1)
    {
        answer.erase();

        int a;

        cout << "\nВведите число: ";

        cin >> a;

        cout << endl;

        cout << recurssion(a);
    }
}
взял со старой лабы по проге, делал через рекурсии
 
Пользователь
Статус
Оффлайн
Регистрация
11 Дек 2018
Сообщения
286
Реакции[?]
81
Поинты[?]
3K
Все это можно перевести с листка в программу
Вот наглядный пример перевода (
Пожалуйста, авторизуйтесь для просмотра ссылки.
):


Полученный остаток нужно будет в конец массива числа добавлять (если ты через массивы реализуешь), например, используя push_back()
взял со старой лабы по проге, делал через рекурсии
Спасибо мужики, я само собой так могу сделать, но я спрашивал именно готовую функцию С++, выше привел пример. Но всё равно спасибо.
он для тебя какая то шутка?
Харош чел, всё гениальное - просто! Умница! Я это и искал!
 
Легенда форума
Статус
Онлайн
Регистрация
10 Дек 2018
Сообщения
4,374
Реакции[?]
2,279
Поинты[?]
184K
Бульдозер
Эксперт
Статус
Оффлайн
Регистрация
18 Июл 2019
Сообщения
1,231
Реакции[?]
508
Поинты[?]
2K
Спасибо мужики, я само собой так могу сделать, но я спрашивал именно готовую функцию С++, выше привел пример. Но всё равно спасибо.

Харош чел, всё гениальное - просто! Умница! Я это и искал!
я тебе готовую рекурсивную функцию дал
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
C++:
#include <iostream>
#include <cmath>
#include <string>

using namespace std;

void to_bin(long long x, string& prev) {
    if (!x) return;
    to_bin(x >> 1, prev);
    prev += '0' + (x & 1);
}

int main() {
    long long num;
    cin >> num;
    string s;
    to_bin(num, s);
    cout << s;
}
Готовых функций, насколько я знаю, в плюсах нет.
 
Сверху Снизу