Parsing visualc&x2B+;(CLI)十六进制字符串到十进制基数10

Parsing visualc&x2B+;(CLI)十六进制字符串到十进制基数10,parsing,visual-c++,c++-cli,hex,Parsing,Visual C++,C++ Cli,Hex,我有一个十六进制字符串“40”,我想把它转换成以10为基数的十进制值64 我试过: String^ val = "40"; Decimal num = Convert::ToDecimal(val); 但这不起作用,因为我显然做错了什么。有人有什么想法吗 我使用VisualC++(CLI)这应该工作: String^ val = "40"; Decimal num = Convert::ToInt32(val, 16); 简单而有效的解决办法是: // C# int num = int.

我有一个十六进制字符串“40”,我想把它转换成以10为基数的十进制值64

我试过:

 String^ val = "40";
 Decimal num = Convert::ToDecimal(val);
但这不起作用,因为我显然做错了什么。有人有什么想法吗

我使用VisualC++(CLI)

这应该工作:

String^ val = "40";
Decimal num = Convert::ToInt32(val, 16);

简单而有效的解决办法是:

// C#
int num = int.Parse(val, NumberStyles.HexNumber);

// C++
int num = System::Int32::Parse(val, System::Globalization::NumberStyles::HexNumber);

我认为不能将
int
直接存储到
decimal
类型的变量中。可以。这在VS2010中编译并运行良好。当然可以。C++/CLI具有隐式转换。我错误地想到了C。这个问题不是标注为代码> C++ +CLI < /C>,我只是这样做。C++语法是:<代码> int num=int::解析(Val,NoMyStord::HealNoint)< /Calp>:柯林:我知道…但是谢谢你指出我用错误的语言举了个例子。