3

I have a string containing a hexadecimal value. Now I need the content of this string containing the hexadecimal as a byte variable. How should I do this without changing the hexadecimal value?

Wessel T.
  • 2,280
  • 2
  • 20
  • 29
  • http://stackoverflow.com/questions/311165/how-do-you-convert-byte-array-to-hexadecimal-string-and-vice-versa-in-c – Dialecticus Feb 13 '11 at 18:02
  • Not a duplicate (wrt C#) as far as I can tell. There are many variations, but this is specific ("xx" -> byte) and warrants a simpler answer than a number of the more complex scenarios. –  Feb 13 '11 at 19:14

3 Answers3

6

An alternative to the options posted so far:

byte b = Convert.ToByte(text, 16);

Note that this will return 0 if text is null; that may or may not be the result you want.

Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
  • 1
    Damn, i even looked at the `Convert.ToByte` method but totally didn't spot that overload which takes the base as parameter... – H.B. Feb 13 '11 at 18:06
2
String strHex = "ABCDEF";
Int32 nHex = Int32.Parse(strHex, NumberStyles.HexNumber);
Byte[] bHex = BitConverter.GetBytes(nHex);

I think that's what you're looking for. If not, post an update with a more explicit definition of what you're looking for.

Brad Christie
  • 100,477
  • 16
  • 156
  • 200
1

If it is just a single byte in the string, you can do this:

        string s = "FF";
        byte b;


        if (byte.TryParse(s, NumberStyles.HexNumber, null, out b))
        {
            MessageBox.Show(b.ToString());  //255
        }
John Koerner
  • 37,428
  • 8
  • 84
  • 134