static void Main() { int i = 446; string hex = i.ToString( "X" /* or x * ); Console.WriteLine( hex ); int j = HexToInt( hex ); Console.WriteLine( j ); } static int HexToInt(string hex) { hex = Regex.Replace(hex, "^0x", "", RegexOptions.IgnoreCase); if (Regex.IsMatch(hex, "[g-z]", RegexOptions.IgnoreCase)) { throw new Exception("Invalid Hexadecimal Expression.: 0x" + hex); } char[] chars = hex.ToUpper().ToCharArray(); Array.Reverse(chars); int dec = 0; for (int i = 0; i < chars.Length; i++) { dec += HexMapping(chars[i]) * (int)Math.Pow(16, i); } return dec; } static int HexMapping(char c) { switch (c) { case '0': return 0; case '1': return 1; case '2': return 2; case '3': return 3; case '4': return 4; case '5': return 5; case '6': return 6; case '7': return 7; case '8': return 8; case '9': return 9; case 'A': return 10; case 'B': return 11; case 'C': return 12; case 'D': return 13; case 'E': return 14; case 'F': return 15; default : throw new Exception("Invalid Hexadecimal Character :" + c.ToString()); } }