def bits_to_mask(n):
    if n < 0 or n > 32:
        raise ValueError('Bit count must be between 0 and 32')
    mask = (~((1 << (32 - n)) - 1)) & 0xFFFFFFFF
    return '.'.join(map(str, ((mask >> (8 * i)) & 0xFF for i in range(3, -1, -1))))

print(bits_to_mask(0))
print(bits_to_mask(12))
print(bits_to_mask(24))
print(bits_to_mask(29))
print(bits_to_mask(32))