奇偶校验位是一种简单机制,用于监测通过不可靠的连接传输的数据中的错误,基本思想是在每组8位之后传输一个额外的位,这样就可以监测传输中的单个错误。
奇偶校验位既可计算为偶校验位,也可计算为奇校验位。如果选择偶校验位,则选择所传输的奇偶校验位,使所传输的“1”位(8位数据加上奇偶校验位)的总数为偶数。当奇数奇偶校验被选择时,奇偶校验位被选择,这样传送的“1”位的总数是奇数。
编写一个程序,使用偶数奇偶校验为用户输入的一组8位计算奇偶校验位。程序应该读取包含8位的字符串,直到用户输入空行为止。在用户输入每个字符串之后,程序应该显示一条明确的消息,指示奇偶校验位应该是0还是大。如果用户输入的不是8位,则显示适当的错误消息。
tips:
#选择校验方法,“1”奇数校验法,“2”偶数校验法
method=int(input("请选择校验方法"))
if method==1:
print("您选择了奇数校验法")
# 第一次输入字符串
str1 = input("请输入字符串")
# 开始循环
while str1 != "":
# 确定字符串长度
if str1.count("0") + str1.count("1") != 8 or len(str1) != 8:
print("您输入的信息有误")
else:
num = str1.count("1")
if num % 2 == 0:
print("后面应输入1")
else:
print("后面应输入0")
str1 = input("请输入字符串")
else:
print("您选择了偶数校验法")
# 第一次输入字符串
str1 = input("请输入字符串")
# 开始循环
while str1 != "":
# 确定字符串长度
if str1.count("0") + str1.count("1") != 8 or len(str1) != 8:
print("您输入的信息有误")
else:
num = str1.count("1")
if num % 2 == 0:
print("后面应输入0")
else:
print("后面应输入1")
str1 = input("请输入字符串")