Функция: вычислить значение числа по записи этого числа в двоичной системе счисления - C (СИ)
Формулировка задачи:
Назначение: вычисляет десятичное значение целого числа по заданной строке символов s, который является записью этого числа в двоичной системе счисления.
Постановка задачи
В соответствии с вариантом задания составить функцию для обработки символьных строк и программу для проверки работоспособности функции. За образец можно брать библиотечные функции обработки строк языка С, но не использовать их в своей функции.
При выполнении 1-го задания необходимо:
1. Строки для тестирования функции вводить в главной программе с клавиатуры.
2. Предусмотреть обработку ошибок в задании параметров и особые случаи.
3. Разработать два варианта заданной функции с использованием:
а) индексированных массивов;
б) указателей.
Решение задачи: «Функция: вычислить значение числа по записи этого числа в двоичной системе счисления»
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;
}