Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перевод двоичного в десятичное ? (bc++)

1.9K
30 апреля 2006 года
Nigger
71 / / 09.04.2005
Нужно перевести двоичное 64-х разрядное число в десятичное число. Число задается в виде строки, результат тоже желателен в виде строки.
(под ДОС на BorlandC 3.1)

Мой вариант правильно работает только с числом ограниченным 59-ю разрядами :( :
Код:
/* Функция осуществляет перевод из двоичного кода
в десятичный. Число в двоичном коде задается в виде строки.
Длина двоичного числа ограничивается 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;
}


Просьба: подскажите как исправить или может есть еще какой вариант решения :?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог