Преобразовать строку в последовательность бит - C (СИ)

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

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

Привет всем! Тема хоть и заезженная, но того что я ищу (примеров) я не нашел. Задача: ввести произвольную строку и перевести ее в 0/1 формат, а затем сделать подсчет количества 1 и 0. Пишу под обычный Си

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

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
void main(void)
{
  unsigned char str[10],b;
  int n,i,j,c1,c0;
  printf("input string:"); scanf("%s",str);
  n=strlen(str);
  c1=0;
  c0=0;
  for(i=0;i<n;i++)
 {
   b=str[i];
   for(j=0;j<8;j++)
  {
    if( (b&128) == 128) c1++,printf("1");
    else c0++,printf("0");
    b=b<<1;
   }
 }
 printf("\nЕдиниц: %d",c1);
 printf("\nНулей: %d",c0);
}

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

Вывод программы позволяет пользователю ввести строку, после чего программа преобразует эту строку в бинарную последовательность и выводит количество единиц и нулей в этой последовательности. Вот список действий, которые выполняет программа:

  1. Подключает необходимые заголовочные файлы.
  2. Инициализирует массив строк и переменные.
  3. Запрашивает у пользователя ввод строки с помощью функции scanf.
  4. Вычисляет длину строки с помощью функции strlen.
  5. Инициализирует счетчики для единиц и нулей в бинарной последовательности.
  6. Используя два вложенных цикла, программа перебирает каждый символ в строке.
  7. Для каждого символа программа проверяет, является ли его старший бит равным 128.
  8. Если это так, то программа увеличивает счетчик для единиц и выводит 1.
  9. В противном случае программа увеличивает счетчик для нулей и выводит 0.
  10. Программа сдвигает символ вправо на один бит, чтобы перейти к следующему биту.
  11. По завершении вложенных циклов программа выводит количество единиц и нулей.

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


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

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

8   голосов , оценка 3.75 из 5
Похожие ответы