二进制数的Python打印格式

时间:2018-11-28 07:03:24

标签: python string-formatting

我需要打印一个二进制数字,包括前导零。到目前为止,我这样做:

print("CRC -> {:08b}".format(crc)

但是此crc可以具有不同的大小。我想要实现的是一条打印语句,它会像

这样使用单个长度,而不是:08b

crc_len = (len(hex(crc))-2)*4

但是我的印刷品应该如何看待,如何根据crc_len进行条件格式化?

1 个答案:

答案 0 :(得分:2)

您可以先准备格式字符串(因为毕竟这只是一个字符串),然后将其用于格式化CRC:

crc = 23534
format = "CRC -> {{:0{:d}b}}".format((len(hex(crc)) - 2)*4)
#'CRC -> {:016b}'
format.format(crc)
#'CRC -> 0101101111101110'