算法任务
在本次任务中,需要完成两个子任务:
一、完成整数转换成八位二进制数,并使用列表存储;
二、完成两个八位二进制的对比。
任务一
思路:此子任务主要通过位移操作和逻辑‘与’操作完成,假定转成八位二进制数,则每次将原数左移一位并与1相与,并将结果存储到列表中。
代码:
def dec2bin(x):
out=[]
for i in range(8):
out.append((x>>i)&1)
return out
任务二
思路一
通过numpy库函数对数据进行处理。
代码:
import numpy as np
def judgment(x,y):
x=np.array(x)
y=np.array(y)
return int(np.sum(np.fabs(x-y)))
思路二
通过普通函数进行判断,代码中的平方主要是为了消除-1对结果的影响
代码:
def judgment_common(x,y):
sum=0
for i in range(len(x)):
sum+=(x[i]-y[i])*(x[i]-y[i])
return sum
#总结
最终,只需将两个代码进行结合一下便可以完成本次任务
代码:
#第一种使用方法
print(judgment(dec2bin(1),dec2bin(3)))
#第二种使用方法
print(judgment_common(dec2bin(1),dec2bin(3)))