Переставить цифры двоичного представления заданного натурального числа в обратном порядке - C (СИ)

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

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

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

Решение задачи: «Переставить цифры двоичного представления заданного натурального числа в обратном порядке»

textual
Листинг программы
  1. int iNum = 32154325;
  2. int i;
  3. char strVal[50] = "";
  4. char strBuf[50] = "";
  5.  
  6. for(i = 0; i<=31;i++)
  7. {
  8.     sprintf(strBuf, "%d", (iNum >> i) & 1); // ?
  9.     strcat(strVal, strBuf); // ?
  10. }
  11.  
  12. printf("strVal = %s\r\n", strVal);

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

В данном коде на языке C выполняется следующая последовательность действий:

  1. Задаётся начальное значение переменной iNum равное 32154325.
  2. Задаётся счётчик i перебирающий двоичные разряды числа iNum в обратном порядке от старшего к младшему.
  3. В цикле for начиная с i = 0 и до i <= 31 включительно выполняется сдвиг числа iNum вправо на i разрядов и одновременное считывание младшего бита результата в переменную типа char strBuf.
  4. Результат сдвига числа iNum вправо на i разрядов и младший бит этого числа (теперь старший бит) приводится к типу char и добавляется к строке strVal.
  5. После завершения цикла for выводится значение переменной strVal с помощью функции printf. Получаем, что в переменной strVal будет содержаться строка 543210.

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


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

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

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

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

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

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