Перевод из двоичной в десятичную систему счисления - 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); //Вывод
}
//-----------------------------------------------------------------------

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

  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
Похожие ответы