/* Функция осуществляет перевод из двоичного кода
в десятичный. Число в двоичном коде задается в виде строки.
Длина двоичного числа ограничивается 64 разрядами.*/
char* Bin2Dec(char *str)
{
int len=0,i=0;
double s=0,k=1;
char res[21];
/*Если длина числа больше 64 разрядов,
оставляем только старшие 64 разряда */
len = strlen(str);
if( len>MaxBinLen)
{
str[MaxBinLen] = 0;
len = MaxBinLen;
}
for(i=len-1;i>=0;i--)
{
if(str == '1')
s = s + k ;
k=k*2;
}
gcvt(s,21,res);
return res;
}
Перевод двоичного в десятичное ? (bc++)
(под ДОС на BorlandC 3.1)
Мой вариант правильно работает только с числом ограниченным 59-ю разрядами :( :
Код:
Просьба: подскажите как исправить или может есть еще какой вариант решения :?