Перевод из двоичной системы в десятичную - C (СИ) (149519)
Формулировка задачи:
Помогите пожалуйста сделать обратную функции перевода, из двоичной в десятичную, добавив в часть кода. Очень надо
#include <stdio.h>
int d2b(int n)
{
int r;
if (n == 0)
return 0;
else
{
r=d2b(n / 2);
return r*10+(n % 2);
}
}
int main(int argc, char* argv[])
{
int n;
printf("n_d=");
scanf("%d",&n);
printf("n_b=%d \n",d2b(n));
return 0;
}Решение задачи: «Перевод из двоичной системы в десятичную»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
typedef char bin_t[33];
#define get_bin(s) ( scanf("%32s", (s)) == 1 && strlen(s) == strspn((s), "01") )
unsigned bin2num(const char * bin) {
unsigned ret = 0;
for ( ; *bin; ++bin )
ret = (ret << 1) | (*bin - '0');
return ret;
}
int main(void) {
bin_t bin;
while ( printf("Binary: ") && get_bin(bin) )
printf("Decimal: %u\n", bin2num(bin));
return 0;
}