Я работаю над приложением C ++, чтобы преобразовать двоичные числа в десятичные числа, и в настоящее время у меня есть работающее приложение, но проблема возникает сейчас, когда оно должно иметь промежуточные результаты.
Поскольку я знаю разговор на бумаге, и я знаю основы C ++, я не думал, что это будет очень сложно, но мне нужна помощь, мне не нужно, чтобы вы написали это для меня, мне нужен кто-то, кто поможет мне правильно понять направление, так что я могу решить это самостоятельно. Промежуточные результаты должны быть примерно такими, если я преобразую 1100 в десятичное число:
---------------
0 * 2⁰ = 0
0 * 2¹ = 0
1 * 2² = 4
1 * 2³ = 8
-----------------
, что в итоге составит 12 (8 + 4 + 0 + 0 = 12)
код пока можно найти здесь: https://paste.ubuntu.com/p/fP2GfT5Pzq/ и ниже
#include <iostream>
#include <cmath>
using namespace std;
int binary_to_decimal(long long);
int main()
{
long long number;
cout << "Please enter the Binary you wish to convert: " << endl;
cin >> number;
cout << "In binary : '" << number << "' In decimal: '" << binary_to_decimal(number) << "'" << endl;
}
int binary_to_decimal(long long number)
{
int decimal_number = 0, i = 0, remainder;
while (number != 0)
{
remainder = number % 10;
// Number = number divided by then
number /= 10;
// decimal_number = decimal_number + remainder to the power of 2
decimal_number += remainder * pow(2, i);
++i;
}
return decimal_number;
}
Надеюсь, вы можете помочь:)