如何在Python中将十进制列表转换为带前导零的二进制?
十进制转带前导零的二进制列表代码修正
你的代码丢失前导零的原因是把二进制字符串转成了整数——整数本身不保留前导零,所以要直接生成固定长度的二进制字符串来解决这个问题。
修正后的代码
def dec_to_bin(x): for a in range(len(x)): # 转换为8位带前导零的二进制字符串,如需其他长度可修改数字(比如016b对应16位) x[a] = format(x[a], '08b') return x # 测试示例 input_list = [6, 7, 2, 11, 14, 15, 10, 3, 6, 7, 2, 11, 14, 15, 10, 3] print(dec_to_bin(input_list))
关键说明
format(num, '08b')是核心逻辑:b指定输出二进制格式,08表示总长度为8位,数值不足时自动在左侧补前导零。- 不要将结果转为整数,直接保留字符串类型,这样前导零才会被完整保留。
原代码问题点
你之前用int(bin(keluar)[2:])把二进制字符串转成了整数,而整数的存储和展示会自动忽略前导零,这就是导致前导零丢失的根本原因。
内容的提问来源于stack exchange,提问作者HelpMeInDjango
相关产品推荐
相关产品推荐

