Написать программу, которая дополняет битовую строку последним битом, который должен быть равен 0, если в исходной строке чётное число единиц, и равен 1, если нечётное...
Пример использования:
original = "1010001"
result = add_parity_bit(original)
print(result) # Вывод: "10100011" (количество единиц в original равно 3, добавляем 1)
Пояснение:
- Функция `add_parity_bit` принимает битовую строку `bit_str`.
- С помощью метода `count('1'` подсчитывается количество единиц в строке.
- Определяется контрольный бит `parity_bit` на основе четности количества единиц.
- Исходная строка дополняется этим битом и возвращается как результат.
# Программа для добавления бита четности к битовой строке
# 1. Получаем исходную битовую строку от пользователя
bit_string = input("Введите битовую строку (только 0 и 1): "
# Инициализируем счетчик единиц
one_count = 0
# 2. Проходим по каждому символу строки с помощью цикла for и range()
# range(len(bit_string)) генерирует последовательность чисел от 0 до длины строки минус 1.
# Эти числа - это индексы символов в строке.
for i in range(len(bit_string)):
# Получаем текущий символ по индексу i
current_bit = bit_string
# 3. Проверяем, является ли текущий символ единицей
if current_bit == '1':
# Если да, увеличиваем счетчик единиц на 1
one_count = one_count + 1 # Используем + для сложения, как разрешено
# 4. Определяем бит четности на основе количества единиц
# Проверяем остаток от деления количества единиц на 2.
# Если остаток 0, число четное. Если остаток 1, число нечетное.
if one_count % 2 == 0:
# Если количество единиц четное, бит четности равен '0'
parity_bit = '0'
else:
# Если количество единиц нечетное, бит четности равен '1'
parity_bit = '1'