Перевед из двоичной системы в десятичную - C (СИ)
Формулировка задачи:
МОжет кто подкинет идею, нужно написать программу которая переводит числа из двоичной системы в десятичную
Решение задачи: «Перевед из двоичной системы в десятичную»
textual
Листинг программы
#include <stdio.h> #include <string.h> unsigned bin2dec(const char * binstr) { return ( *binstr ) ? ( ( *binstr - '0' ) << ( strlen(binstr) - 1 ) ) + bin2dec(binstr + 1) : 0; } int main(void) { printf("%u\n", bin2dec("101")); printf("%u\n", bin2dec("1111111")); return 0; }
Объяснение кода листинга программы
- В функции bin2dec(), переменная binstr является указателем на строку, содержащую двоичное число.
- Если binstr не равно NULL, то из символа, на который указывает binstr, вычитается '0', и результат сдвигается вправо на количество позиций, равное длине строки, уменьшенной на 1.
- Затем вызывается рекурсивно функция bin2dec() для следующей цифры двоичного числа (binstr + 1).
- Если binstr равно NULL, то возвращается 0.
- В функции main() вычисляется двоичное число
101
и выводится на экран. - Затем вычисляется двоичное число
1111111
и выводится на экран. - В конце функции main() возвращается 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д