Перевод числа из двоичной в десятичную с.с. - C (СИ)
Формулировка задачи:
Дана задача:
Задано неотрицательное целое число в двоичной системе счисления. Требуется перевести его в десятичную. Ввод В первой строке содержится исходное число не более чем из 50 000 цифр 0 и 1 без ведущих нулей. Вывод Вывод должен содержать это число в десятичной системе счисления без ведущих нулей. На этом же форуме нашёл код, который удовлетворяет решению данной задачи:#include <stdio.h> #include <conio.h> int main () { char c; int result=0; while(scanf("%c",&c) ) { if( (c<'0') || (c > '1') ) break; result<<=1; result+=c-'0'; }; printf("\n%d",result); return 0; }
Решение задачи: «Перевод числа из двоичной в десятичную с.с.»
textual
Листинг программы
#include <stdio.h> int main () { char c; unsigned __int64 result=0; while(scanf("%c",&c) == 1) { if( (c<'0') || (c > '1') ) break; result<<=1; result+=c-'0'; }; printf("%I64u\n",result); return 0; }
Объяснение кода листинга программы
- Подключение стандартной библиотеки для работы с файлами и вывода данных
- Объявление функции main, которая является точкой входа в программу
- Объявление переменной типа char c, которая будет использоваться для считывания символов с клавиатуры
- Объявление переменной типа unsigned __int64 result, которая будет использоваться для хранения результата перевода числа из двоичной системы счисления в десятичную
- Организация цикла while, который будет выполняться до тех пор, пока пользователь не введет символ, не являющийся цифрой от 0 до 1
- Внутри цикла сдвиг результата вправо на 1 позицию с помощью оператора <<=
- Добавление к результату значения введенного символа, предварительно вычтя из него код символа '0'
- Выполнение условия для выхода из цикла while при вводе символа, не являющегося цифрой от 0 до 1
- Вывод результата на экран с помощью функции printf, используя форматный спецификатор %I64u для вывода значения типа unsigned __int64
- Возврат 0 из функции main, что означает успешное выполнение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д