Search code examples
c#stringhexbin

C# how convert large HEX string to binary


I have a string with 14 characters . This is a hex represantation of 7bytes. I want to convert it to binary. I tried using Convert.ToString(Convert.ToInt32(hexstring, 16), 2); For small strings this works but for 14 characters it will not work because the result is too large. How can i manage this? Keep in mind that the output of the conversion should be a binary string with a lengeth of 56 characters (we must keep the leading zeros). (e.g. conversion of (byte)0x01 should yield "00000001" rather than "1")


Solution

  • You can just convert each hexadecimal digit into four binary digits:

    string binarystring = String.Join(String.Empty,
      hexstring.Select(
        c => Convert.ToString(Convert.ToInt32(c.ToString(), 16), 2).PadLeft(4, '0')
      )
    );
    

    You need a using System.Linq; a the top of the file for this to work.