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

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

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

Помогите с переводом из двоичной в восьмеричную систему счисления. Проверку по алфавиту можно отбросить. Интересует вариант разбития на триады. Не могу придумать алгоритм чтобы из строки бралось только 3 символа, а потом последующие 3, ну и если чисел для триады не хватает добавить нулей.

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

textual
Листинг программы
  1. //-----------------------------------------------------------------------
  2. char octal (char ch[255])
  3. {
  4. int n=strlen(ch);
  5. int i=n-1;
  6. do
  7. {
  8.  char ch1[]={ch[i-2], ch[i-1], ch[i]};
  9.   binary (ch1);
  10.   i=i-3;
  11. }
  12. while (i>-1);
  13. }
  14. //-----------------------------------------------------------------------
  15. //-----------------------------------------------------------------------
  16. char binary (char ch[4])
  17. {
  18. int n=strlen(ch), sum=0 , i; //задаем счетчики и измеряем длину строки
  19.  
  20. for (i=n-1;i>-1;i--)//    пошли по строке бит
  21.    if (ch[i]=='1')    sum+=pow(2,n-(i+2)) ;// если бит = 1 то прибавить к общей сумме 2 в степени
  22.  
  23. printf("%d",sum); //Вывод
  24. }
  25. //-----------------------------------------------------------------------

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

  1. В функции octal происходит перевод из восьмеричной системы счисления в десятичную.
  2. Функция binary переводит строку из двоичной системы счисления в десятичную.
  3. В функции octal перебираются все символы строки в обратном порядке, начиная с последнего.
  4. Для каждого символа создается новая строка ch1, которая содержит три последних символа строки ch.
  5. Функция binary вызывается для строки ch1, что приводит к переводу строки из двоичной системы счисления в десятичную.
  6. Значение переменной sum инициализируется нулем и используется для хранения результата преобразования.
  7. Переменная i используется в цикле для перебора всех символов строки ch.
  8. Если текущий символ равен '1', то к переменной sum добавляется значение pow(2, n-(i+2)), что соответствует сложению соответствующего числа в двоичной системе счисления.
  9. Значение переменной n используется для вычисления степени числа 2.
  10. Результат преобразования выводится на экран с помощью функции printf.

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


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

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

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

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

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

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