Доброго времени суток. Не проходит задача по программированию. Подскажите что не так. Напишите программу, которая переводит целое число (возможно, отрицательное) из двоичной системы счисления в десятичную. Перед отрицательными числами ставится знак "-".
#include
#include
using namespace std;
void trans(long long int n) {
int r;
long int a=0, k=1;
if (n<0) {
cout<<'-';
n=-n;
}
while (n>0) {
r=n%10;
a+=r*k;
n=n/10;
k=k*2;
}
cout<>n;
trans(n);
}

17 Мар 2020 в 19:45
190 +1
0
Ответы
1

В вашей программе есть несколько ошибок. Вот исправленный вариант:

#include <iostream>
using namespace std;
void trans(long long int n) {
int r;
long int a = 0, k = 1;
if (n < 0) {
cout << '-';
n = -n;
}
while (n > 0) {
r = n % 10;
a += r * k;
n = n / 10;
k *= 2;
}
cout << a;
}
int main() {
long long int num;
cout << "Введите целое число в двоичной системе: ";
cin >> num;
cout << "Число в десятичной системе: ";
trans(num);
return 0;
}

Теперь программа должна корректно переводить целые числа из двоичной системы счисления в десятичную. Вы можете запустить этот код и проверить его работоспособность. Надеюсь, это поможет вам решить вашу задачу по программированию. Если у вас есть еще вопросы, не стесняйтесь задавать.

18 Апр 2024 в 16:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир