我是python的新手,我开发了一个函数,当代码函数等于1时,该函数检索十进制值并将其转换为二进制值,但问题是当列表包含值时,它返回一个空列表。我必须获得完整列表
这里是功能:
def coil_val_list(s):
v = []
r = []
i = []
for p in s:
if p.haslayer('ModbusADUResponse'):
try:
if p['ModbusADUResponse'][1].funcCode == 1:
# r = reg_val_list_binary(s)
r = v.extend(p['ModbusADUResponse'][1].coilStatus)
for i in r:
if i == 1:
v.extend([1,0,0])
else:
v += [int(bit)
for bit in str( bin(i) )[2:].zfill(8)] [::-1]
except AttributeError:
pass
return v
这是将十进制数字转换为二进制的方法。
binary_number = '0:05b'.format(int(decimal))
或者如果十进制数不在字符串中,则直接执行此操作。
binary_number = '0:05b'.format(decimal)
'0:05b'
,冒号之前的零连接零,例如,如果有5个位数,则二进制数为5 = 01001
,但在冒号之前写零则给出1001
。和冒号后面的05
描述所需的位数。