Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

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

  • Автор темы Автор темы sintrace
  • Дата начала Дата начала
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
11 Дек 2018
Сообщения
303
Реакции
81
Всех приветствую, прощу помощи - нужно перевести число из 10 в 2 систему счисления максимально удобным способом (Я не нашел готовой функции на плюсах, возможно вы знаете), знаю насчёт strtol, hex, dec, oct - но это всё не то, можно перевести из 2 в 10, но никак не наоборот.
У меня половина сайтов заблокана потому что я из РФ, ну сами понимаете, поэтому по каким то форумам читал, поэтому не уверен что я полностью инет изучил, вдруг кто то знает, гении плюсов помогите..
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Дели число из десятичной системы на двойку, пока число не станет меньше двух. И снизу вверх записываешь остатки от деления (считай столбиком)
Т.е, если 11 в десятичной, это 1011 в двоичной
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Дели число из десятичной системы на двойку, пока число не станет меньше двух. И снизу вверх записываешь остатки от деления (считай столбиком)
Т.е, если 11 в десятичной, это 1011 в двоичной
Все это можно перевести с листка в программу
 
Вот наглядный пример перевода (
Пожалуйста, авторизуйтесь для просмотра ссылки.
):
1646307598643.png


Полученный остаток нужно будет в конец массива числа добавлять (если ты через массивы реализуешь), например, используя push_back()
 
Последнее редактирование:
C++:
Expand Collapse Copy
#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);
    }
}
взял со старой лабы по проге, делал через рекурсии
 
Все это можно перевести с листка в программу
Вот наглядный пример перевода (
Пожалуйста, авторизуйтесь для просмотра ссылки.
):


Полученный остаток нужно будет в конец массива числа добавлять (если ты через массивы реализуешь), например, используя push_back()
взял со старой лабы по проге, делал через рекурсии
Спасибо мужики, я само собой так могу сделать, но я спрашивал именно готовую функцию С++, выше привел пример. Но всё равно спасибо.
он для тебя какая то шутка?
Харош чел, всё гениальное - просто! Умница! Я это и искал!
 
Спасибо мужики, я само собой так могу сделать, но я спрашивал именно готовую функцию С++, выше привел пример. Но всё равно спасибо.

Харош чел, всё гениальное - просто! Умница! Я это и искал!
я тебе готовую рекурсивную функцию дал
 
C++:
Expand Collapse Copy
#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;
}
Готовых функций, насколько я знаю, в плюсах нет.
 
Назад
Сверху Снизу