Перевед из двоичной системы в десятичную - C (СИ)

Узнай цену своей работы

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

МОжет кто подкинет идею, нужно написать программу которая переводит числа из двоичной системы в десятичную

Решение задачи: «Перевед из двоичной системы в десятичную»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. unsigned bin2dec(const char * binstr) {
  5.     return ( *binstr ) ? ( ( *binstr - '0' ) << ( strlen(binstr) - 1 ) ) + bin2dec(binstr + 1) : 0;
  6. }
  7.  
  8. int main(void) {
  9.     printf("%u\n", bin2dec("101"));
  10.     printf("%u\n", bin2dec("1111111"));
  11.  
  12.     return 0;
  13. }

Объяснение кода листинга программы

  1. В функции bin2dec(), переменная binstr является указателем на строку, содержащую двоичное число.
  2. Если binstr не равно NULL, то из символа, на который указывает binstr, вычитается '0', и результат сдвигается вправо на количество позиций, равное длине строки, уменьшенной на 1.
  3. Затем вызывается рекурсивно функция bin2dec() для следующей цифры двоичного числа (binstr + 1).
  4. Если binstr равно NULL, то возвращается 0.
  5. В функции main() вычисляется двоичное число 101 и выводится на экран.
  6. Затем вычисляется двоичное число 1111111 и выводится на экран.
  7. В конце функции main() возвращается 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

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

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

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

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы