Вопрос преобразования числа в разных системах счисления и его сохранения в C++
В C++ есть возможность представлять числа в двоичной, десятичной, восьмеричной и шестнадцатеричной системе счисления. Пример:
#include <iostream>
using namespace std;
int main()
{
//СС - система счисления
const int a = 0b101; //101 -> 5. Двоичная СС
const int b = 10; //100 -> 100. Десятичная СС
const int c = 0234; // 234 -> 156. Восьмеричная СС
const int d = 0xFFAA; //FFAA -> 65450. Шестнадцатеричная СС
return 0;
}
Но, есть ли возможность представлять числе в виде СС, которую я хочу. Если я сделаю такой код:
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
cout << a;
return 0;
}
И введу 0b101
, то очевидно выдаст 0
.
Если попробую так:
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << a + b;
return 0;
}
И введу 1001 1001
очевидно выдаст 2002
. Есть ли возможность как-то превратить данное число в двоичную систему, не через функции и строки(как некоторые делают), а именно сохранить в виде 0b1001
? Допустим, введу 1001
и, сделав некоторые действия, он будет считаться 0b1001
.
Источник: Stack Overflow на русском