【问题标题】:How can I convert decimal to binary values in python?如何在python中将十进制转换为二进制值?
【发布时间】:2020-09-18 23:24:11
【问题描述】:

我是 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 

【问题讨论】:

  • bin(15) 可能有帮助吗?
  • 不,它不起作用。 bin() 或 encode() 都不起作用
  • 详细说明,什么行不通?
  • 我使用了 v+= bin(p['ModbusADUResponse'][1].coilStatus) 和 v+= str(p['ModbusADUResponse'][1].coilStatus).encode() 但我得到了一个空列表
  • v += [bin(...)] 在您向列表中添加列表时。

标签: python list binary decimal data-conversion


【解决方案1】:

这是将十进制数转换为二进制数的方法。

binary_number = '0:05b'.format(int(decimal))

或者如果 decimal_number 不在字符串中,则直接执行此操作。

binary_number = '0:05b'.format(decimal)

'0:05b',冒号前的零连接零,例如,如果有 5 个位数,则为二进制 5 = 01001,但在冒号前写入零会给出 1001。冒号后面的05 描述了你想要的位数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-13
    • 2020-08-06
    • 2014-02-13
    • 2017-07-15
    • 2014-11-07
    • 2018-10-20
    • 2019-01-23
    • 2011-02-17
    相关资源
    最近更新 更多