Converting Hex string to Int in C#

For a hex lit­er­al that’s not pre­fixed you can quite eas­i­ly con­vert it using int.Parse in C#:

string hex = "142CBD";
// this returns 1322173
int intValue = int.Parse(hex, System.Globalization.NumberStyles.HexNumber);

But as you’ve prob­a­bly noticed, most hex lit­er­als are pre­fixed with 0x (e.g. “0x142CBD”) which would throw a For­ma­tEx­cep­tion if you try to parse it using the above code.

In order to parse a 0x pre­fixed hex lit­er­al you need to use the Convert.ToInt32(string val­ue, int from­Base) method instead:

string prefixedHex = "0x142CBD";
// this works, and returns 1322173
int intValue = Convert.ToInt32(prefixedHex , 16);