Preguntas sobre programación en Python, búsqueda de código
Esta es una verificación de paridad del número binario 1011101. El bit más a la derecha es el bit de verificación, que se utiliza para garantizar que el número de unos en el número binario sea un número impar. El método de implementación específico es agregar un dígito de control al número binario para que el número total tenga un número par de dígitos y luego establecer el valor del dígito de control para que el número total tenga un número impar de 1 valores, como En este ejemplo, el dígito de control es 1 porque hay 4 unos en el número.
Cabe señalar que esta verificación de paridad solo puede detectar un número par de errores en el número binario. Si ocurre un número impar de errores, no se puede detectar. Al mismo tiempo, este método de verificación no puede corregir errores, solo puede detectar la existencia de errores.
El siguiente es un ejemplo de código de generación y verificación de código de paridad implementada en Python:
def generate_parity_bit(data):
# Contar el número de unos en binario representación de datos
ones_count = 0
para c en bin(data)[2:]:
ones_count += int(c)
# Si hay un número impar de unos, el bit de paridad es 0
# De lo contrario, el bit de paridad es 1
si ones_count % 2 == 0:
return 1
else:
return 0
def add_parity_bits(data):
# Generar bit de paridad para cada byte en datos
parity_bits = [generate_parity_bit(byte) para byte en datos]
# Combina los datos originales y los bits de paridad en un nuevo bytearray
resultado = bytearray ( )
para i en el rango(len(datos)):
result.append(datos[i])
resultado.append(parity_bits[i] )
resultado devuelto
def check_parity_bits(data_with_parity):
# Verifique el bit de paridad para cada byte en data_with_parity
para i en el rango (len(data_with_parity)):
if i % 2 == 0: # Saltar bits de paridad
continuar
byte = data_with_parity[i-1]
bit_paridad = datos_con_paridad[i]
si genera_bit_paridad(byte) != bit_paridad:
devuelve Falso
devuelve Verdadero
Entre ellos, la función generate_parity_bit se usa para calcular el bit de paridad de un byte, la función add_parity_bits se usa para agregar bits de paridad a un fragmento de datos binarios y la función check_parity_bits se usa para verificar un fragmento de datos binarios con bits de paridad. ¿Es correcto?