最近在学习算法,多次遇到0/1背包问题,而在0/1背包问题中的物品是否放入背包由0、1决定,与二进制数很相似。为了与其他列表在索引上的使用相同,我就想写一个函数将整数转化成二进制数,再将二进制数按位存入到列表中
代码如下:
# 算法采用的是移位(除2)取余的思想
# 此处不使用自带的bin()函数是因为bin()返回的是字符串
# 且bin(3) = '0b11', bin(4) = '0b100',返回的二进制数位数不同
# t是输入的int数据,n是保留的二进制位数
def bit_to_list(t, n):
S = [0 for i in range(n)]
i = -1
while t != 0:
S[i] = t % 2
t = t >> 1
i -= 1
return S
输出结果: