用Python 输入一个包含若干传递信息的列表经奇校验后输出的一个新列表新列表中的元素用二进制形式表示。提示奇校验既在传递每一个字节的时候另外附加一位作为校验位校验位在数据位后面当实际数据中1的个数为偶数的时候这个校验位就是1否则这个校验位就是为0
。
示例:
输入:[65, 66, 67]
输出:['01000001', '10000110', '11000111']
解释:65的二进制是01000001,有2个1,因此奇校验位为1,结果为010000011;66的二进制是1000010,有2个1,因此奇校验位为1,结果为10000110;67的二进制是1100011,有3个1,因此奇校验位为0,结果为11000111。
def odd_parity(lst):
res = []
for num in lst:
binary = bin(num)[2:].zfill(8) # 二进制表示,不足8位左侧补0
ones = binary.count('1') # 统计1的个数
if ones % 2 == 0:
binary += '1' # 校验位为1
else:
binary += '0' # 校验位为0
res.append(binary)
return res
print(odd_parity([65, 66, 67])) # ['010000011', '10000110', '11000111']
``

原文地址: http://www.cveoy.top/t/topic/ch5n 著作权归作者所有。请勿转载和采集!