Перевод из двоичной в десятичную систему счисления - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д