Доброго времени суток. Не проходит задача по программированию. Подскажите что не так. Напишите программу, которая переводит целое число (возможно, отрицательное) из двоичной системы счисления в десятичную. Перед отрицательными числами ставится знак "-".
#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
167 +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 Апр в 16:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 91 010 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир