#在有限域GF(2^n)下求多项式乘法 Python代码实现 一、了解运算规则 二、例题展示 三、直接上代码(代码有详细备注,不做一一解释)
def yxydxscf(a,b,c):
# 不可约多项式系数模二运算
c = str(c)[1:]
# 不够8位左补零
g = str(a).rjust(8, '0')
h = str(b).rjust(8, '0')
k = str(c).rjust(8, '0')
# 二进制转十进制
d = int(str(a), 2)
# e = int(str(b), 2)
f = int(str(k), 2)
# 存放g(x)多项式的每一项二进制表示
X = []
if h[0] == '1':
x = ['10000000']
X += x
if h[1] == '1':
x1 = ['01000000']
X += x1
if h[2] == '1':
x2 = ['00100000']
X += x2
if h[3] == '1':
x3 = ['00010000']
X += x3
if h[4] == '1':
x4 = ['00001000']
X += x4
if h[5] == '1':
x5 = ['00000100']
X += x5
if h[6] == '1':
x6 = ['00000010']
X += x6
if h[7] == '1':
x7 = ['00000001']
X += x7
# 存放g(x)每一项与f(x)的乘法运算后十进制结果
E = []
for i in range(len(X)): # 求g(x)每一项与f(x)的乘法运算
G = X[i]
# print(G)
e1 = int(G, 2)
d1 = d
while e1 != 0:
if e1 == 1:
E += [d1]
break
# print(E)
if g[0] == '1':
d1 = d1 |