Допустим у тебя дано число 1001101 (в бинарной си), чтобы перевести ее в десятичную си нужно: 1) Расставить коэффициенты 0,1,2,3 начиная с последней цифры в двоичной записи. В итоге у тебя получаться такие коэффициенты над числами: 1^6, 0^5, 0^4, 1^3, 1^2, 0^1, 1^0. 2) Теперь умножим каждое число в бинарной си на основание двоичной си (двойка) в той степени, которой ты посчитал. Т.е.: 1*2^6, 0*2^5 и так далее. 3) Затем остается только сложить полученные числа из второго шага и ты получишь число в десятичной си
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
void main(void){
setlocale(LC_ALL, "rus");
int i,sum=0,n,r=0;
char date[255];
cout << "Введите двоичное число"<< endl;
cin >> date;
n = strlen(date);
int *arr = new int[n];
for (i = 0; i < n; i++){
arr[i] = (int)date[i] - (int)'0';
}
for (i = 0; i < n; i++){
cout << arr[i] << " ";
}
cout << " " << endl;
for (i = 0; i < n; i++){
r = r + arr[i]*pow(2, n - i-1);
}
cout << "Десятичное число равно" << r;
}