Перевод из двоичной в десятичную систему счисления - C (СИ) (69780)
Формулировка задачи:
Помогите с переводом из двоичной в восьмеричную систему счисления. Проверку по алфавиту можно отбросить. Интересует вариант разбития на триады. Не могу придумать алгоритм чтобы из строки бралось только 3 символа, а потом последующие 3, ну и если чисел для триады не хватает добавить нулей.
Решение задачи: «Перевод из двоичной в десятичную систему счисления»
textual
Листинг программы
//----------------------------------------------------------------------- char octal (char ch[255]) { int n=strlen(ch); int i=n-1; do { char ch1[]={ch[i-2], ch[i-1], ch[i]}; binary (ch1); i=i-3; } while (i>-1); } //----------------------------------------------------------------------- //----------------------------------------------------------------------- char binary (char ch[4]) { int n=strlen(ch), sum=0 , i; //задаем счетчики и измеряем длину строки for (i=n-1;i>-1;i--)// пошли по строке бит if (ch[i]=='1') sum+=pow(2,n-(i+2)) ;// если бит = 1 то прибавить к общей сумме 2 в степени printf("%d",sum); //Вывод } //-----------------------------------------------------------------------
Объяснение кода листинга программы
- В функции
octal
происходит перевод из восьмеричной системы счисления в десятичную. - Функция
binary
переводит строку из двоичной системы счисления в десятичную. - В функции
octal
перебираются все символы строки в обратном порядке, начиная с последнего. - Для каждого символа создается новая строка
ch1
, которая содержит три последних символа строкиch
. - Функция
binary
вызывается для строкиch1
, что приводит к переводу строки из двоичной системы счисления в десятичную. - Значение переменной
sum
инициализируется нулем и используется для хранения результата преобразования. - Переменная
i
используется в цикле для перебора всех символов строкиch
. - Если текущий символ равен '1', то к переменной
sum
добавляется значениеpow(2, n-(i+2))
, что соответствует сложению соответствующего числа в двоичной системе счисления. - Значение переменной
n
используется для вычисления степени числа 2. - Результат преобразования выводится на экран с помощью функции
printf
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д