Преобразование восьмиразрядного двоичного числа в десятичное - C (СИ)
Формулировка задачи:
Написать программу, которая преобразует введенное с клавиатуры восьмиразрядное двоичное число в десятичное.
Помогите пожалуйста
Решение задачи: «Преобразование восьмиразрядного двоичного числа в десятичное»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
int convertBinaryToDecimal(long long n);
int main()
{
long long n;
printf("Enter a binary number: ");
scanf("%lld", &n);
printf("%lld in binary = %d in decimal", n, convertBinaryToDecimal(n));
return 0;
}
int convertBinaryToDecimal(long long n)
{
int decimalNumber = 0, i = 0, remainder;
while (n!=0)
{
remainder = n%10;
n /= 10;
decimalNumber += remainder*pow(2,i);
++i;
}
return decimalNumber;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и математическими вычислениями.
- Определение функции convertBinaryToDecimal, которая преобразует двоичное число в десятичное.
- Ввод числа в двоичной системе счисления с помощью функции scanf.
- Вызов функции convertBinaryToDecimal с переданным ей числом.
- Вывод десятичного числа, полученного в результате преобразования, с помощью функции printf.
- Возврат 0, означающий успешный конец работы программы.
- Переменная decimalNumber инициализируется нулем и используется для хранения десятичного числа.
- Переменная i инициализируется нулем и используется для хранения степени числа 2, которую необходимо применить к остатку от деления.
- Цикл while выполняется до тех пор, пока число n не станет равным нулю.
- В каждой итерации цикла остаток от деления n на 10 сохраняется в переменной remainder.
- Число n делится на 10 с помощью оператора деления /=.
- К полученному остатку от деления прибавляется произведение остатка от деления на 2 в степени i, т.е. n % 10 * pow(2, i).
- Значение i увеличивается на 1.
- После окончания цикла while, функция возвращает полученное десятичное число.
- Возврат 0, означающий успешный конец работы функции convertBinaryToDecimal.
- Вторая строка комментария содержит название и значение переменной
decimalNumber. - Третья строка комментария содержит название и значение переменной
i. - Четвертая строка комментария содержит название и значение переменной
remainder. - Пятая строка комментария содержит название и значение переменной
n. - Шестая строка комментария содержит название и значение переменной
pow.