In hexadecimal notation, each byte is represented by two ASCII characters, so the string must be an even length.
I'm worried that you've posted a number of questions about converting back and forth between strings and binary. Why do you need to do this? What is your application? I would expect software to operate on and store data in the binary domain, only converting to strings when readable output is required.
