Я хотел бы преобразовать целую последовательность в десятичную. Я знаю процедуру, но как я могу поместить все целые числа в один двоичный номер?Как преобразовать двоичный в десятичный в C
Выход должен быть таким:
Enter first binary digit: 0
Enter second binary digit: 0
Enter third binary digit: 0
Enter fourth binary digit: 0
0000 = 0
Ниже показано, как я написал эту задачу:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<conio.h>
int main(void)
{
int a[100];
int n, dec = 0; int power(int, int);
long int binaryNumber, decimalNumber = 0, j = 1, remainder;
printf("Enter first binary number: ");
scanf("%ld", &a[1]);
printf("Enter second binary number: ");
scanf("%ld", &a[2]);
printf("Enter third binary number: ");
scanf("%ld", &a[3]);
printf("Enter fourth binary number: ");
scanf("%ld", &a[4]);
for (int i = 0;i<n;i++)
{
scanf("%d", &a[i]);
}
for (int i = (n - 1);i >= 0;i--)
{
dec = (a[i] * power(2, j)) + dec;
j++;
}
printf("binary number of decimal is %d", dec);
return 0;
}
Привет Luia Moly и добро пожаловать на StackOverflow, возможно, этот вопрос может помочь вам: HTTP: //stackoverflow.com/questions/12338584/binary-to-decimal-in-c – vdolez
Вы имеете в виду '(a - '0') * 1000 + (b - '0') * 100 + (c - '0') * 10 + (d - '0') * 1'? –
Основная ошибка в программе заключается в том, что 'n' используется неинициализированным. У компилятора, скорее всего, есть возможность предупредить о таких ошибках. – Armali