Преобразовать строку в последовательность бит - 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); }
Объяснение кода листинга программы
Вывод программы позволяет пользователю ввести строку, после чего программа преобразует эту строку в бинарную последовательность и выводит количество единиц и нулей в этой последовательности. Вот список действий, которые выполняет программа:
- Подключает необходимые заголовочные файлы.
- Инициализирует массив строк и переменные.
- Запрашивает у пользователя ввод строки с помощью функции scanf.
- Вычисляет длину строки с помощью функции strlen.
- Инициализирует счетчики для единиц и нулей в бинарной последовательности.
- Используя два вложенных цикла, программа перебирает каждый символ в строке.
- Для каждого символа программа проверяет, является ли его старший бит равным 128.
- Если это так, то программа увеличивает счетчик для единиц и выводит
1
. - В противном случае программа увеличивает счетчик для нулей и выводит
0
. - Программа сдвигает символ вправо на один бит, чтобы перейти к следующему биту.
- По завершении вложенных циклов программа выводит количество единиц и нулей.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д