For those of us who need to convert signed integers (range -2**(digits-1) to 2**(digits-1)-1) to 2's complement binary strings, this works:
def int2bin(integer, digits): if integer >= 0: return bin(integer)[2:].zfill(digits) else: return bin(2**digits + integer)[2:]This produces:
>>> int2bin(10, 8)'00001010'>>> int2bin(-10, 8)'11110110'>>> int2bin(-128, 8)'10000000'>>> int2bin(127, 8)'01111111'