FormatInt returns the string representation of i in the given base, for 2 <= base <= 36. The result uses the lower-case letters 'a' to 'z' for digit values >= 10.
You can also use fmt.Sprintf instead of fmt.Printf if you want a string variable.
This way, you can convert negative decimal into bitwise representation using two's complement (without - sign), not into mathematical binary representation (using - sign). (As I commented in Soslan's answer.)
(Soslan and Vaibhav's answers also work with negative numbers, using the unsafe package.)