我正在尝试将数字转换为具有固定长度的二进制表示。我尝试过使用
>>> "{0:04b}".format(number)
当数字可以用四位(0-15)完全表示时有效,但是我需要字符串总是四位长,即使数字超出范围。例如,
>>> "{0:04b}".format(17)
应该返回'0001',而不是'10001'。
我知道我可以索引结果字符串的最后4位,但是我想知道是否有更优雅的解决方案。
答案 0 :(得分:0)
没有通用的方法来限制整数转换的宽度。但是,您可能希望针对特定情况使用特定方法。
如果您不希望在生成字符串后减少字符串,则可以减少输入数字。由于您只对低位四位感兴趣,& 0xf
应该为您隔离这些位:
"{0:04b}".format(number & 0xF)
或者,您可以调用format
两次,一次转换整数,一次限制结果字符串的字段宽度。这是相当难以理解的,所以我不推荐它:
"{0:4.4s}".format("{0:04b}".format(number))