Вывести сам перевод из двоичной системы в десятичную в c++
Например, при вводе 1011 нужно вывести строку "2^0 + 2^1 + 2^3" Ещё нужно обязательно использовать do while
int temp;
cin >> temp;
int base = 1;
int k = -1;
int n = 0;
while (temp) {
int last = temp % 10;
temp = temp / 10;
decVal += last * base;
base = base * 2;
k += 1;
cout << '2^', k;
}
Ответы (1 шт):
Автор решения: Dafter
→ Ссылка
Вот решение вашей задачи, тут все просто, комментарии я написал, чтоб вы смогли разобраться
#include <iostream>
using namespace std;
int main() {
int temp;
cin >> temp; // Ввели число
int power = 0; // Текущая степень
do {
if (temp % 10 == 1) { // Если последняя цифра = 1
cout << "2^" << power; // то выводим на экран 2^(текущая степень)
if (temp / 10 > 0) cout << " + "; // Если это не последняя единица, то выводим "+"
}
power++; // Увеличиваем степень не зависимо от условия
temp /= 10; // Переходим к следующей цифре
} while (temp > 0); // Выполнять пока число не стало 0
}