Функция: вычислить значение числа по записи этого числа в двоичной системе счисления - C (СИ)

Формулировка задачи:

Назначение: вычисляет десятичное значение целого числа по заданной строке символов s, который является записью этого числа в двоичной системе счисления. Постановка задачи В соответствии с вариантом задания составить функцию для обработки символьных строк и программу для проверки работоспособности функции. За образец можно брать библиотечные функции обработки строк языка С, но не использовать их в своей функции. При выполнении 1-го задания необходимо: 1. Строки для тестирования функции вводить в главной программе с клавиатуры. 2. Предусмотреть обработку ошибок в задании параметров и особые случаи. 3. Разработать два варианта заданной функции с использованием: а) индексированных массивов; б) указателей.

Код к задаче: «Функция: вычислить значение числа по записи этого числа в двоичной системе счисления - C (СИ)»

textual
#include<stdio.h>
#include<conio.h>
 
long bin_to_dec(char *s, int *err)
{
    short i;
    long res = 0;
 
    *err = 0;
    for (i = 0; i < sizeof(long) * 8 && s[i]; ++i)
    {
        if (s[i] != '0' && s[i]!='1') {
          *err = 1;
          return 0;
        }
        res <<= 1;
        res |= (s[i] - '0');
    }
    return res;
}
 
int main(void)
{
    char s[100]; int err; long res;
    printf("Введи двоичное число\n");
    scanf("%s", s);
    res = bin_to_dec(s, &err);
    if (err) printf("Ошибочный ввод:%s\n", s);
    else printf("Bin = %s Dec = %ld\n", s, res);
    _getch();
    return 0;
    
}

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

14   голосов, оценка 3.714 из 5


СОХРАНИТЬ ССЫЛКУ