如何在 c#.net 中将十六进制转换为十进制? [复制]

Posted

技术标签:

【中文标题】如何在 c#.net 中将十六进制转换为十进制? [复制]【英文标题】:How to convert hex to decimal in c#.net? [duplicate] 【发布时间】:2015-04-04 00:10:20 【问题描述】:

十六进制转十进制

例子:

它会问一个十六进制。如下所示。

输入十六进制:8000 8000 1000 0100

那么,

结果:32768 32768 4096 256

将每个十六进制转换为十进制。

十六进制 = 十进制

8000 = 32768

8000 = 32768

1000 = 4096

0100 = 256

【问题讨论】:

Convert.ToString(Int32, Int32) 和/或Convert.ToInt32(string, Int32) int decValue = int.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);来自***.com/questions/74148/… @Alexander - 我已经使用过它,它给了我一个错误。该程序只能转换 8000 而不是 8000 8000 1000 0100 【参考方案1】:
Console.Write("Enter HEX: ");
string hexValues = Console.ReadLine();
string[] hexValuesSplit = hexValues.Split(new char[]  ' ' , StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine("HEX = DECIMAL");
foreach (String hex in hexValuesSplit)

    // Convert the number expressed in base-16 to an integer. 
    int value = Convert.ToInt32(hex, 16);
    Console.WriteLine(string.Format("0 = 1", hex, Convert.ToDecimal(value)));


Console.ReadKey();

附: : 原代码不属于我。原码请参考MSDN

【讨论】:

我输入了 8000 8000 0100 结果是这个 0 = 1 0100=256 程序只显示第三组数字. 对不起,我的错。我修正了错别字和引文。现在应该可以了。 Winforms中Console.ReadKey()的等价物是什么? 没有等价物。这是一个控制台应用程序特定命令,它暂停并等待用户按下任意键。它仅用于保持应用程序窗口打开,直到您按下一个键。在 WinForms 中您不需要这样的操作。表单会一直显示,直到您隐藏或丢失它。 mscorlib.dll 中发生了“System.FormatException”类型的未处理异常在这一行 TxttText.Text = string.Format("0 = 1" + "=" + hex + "=" + Convert.ToDecimal(value));【参考方案2】:

使用 string.split(' ') 将您的个人十六进制数字作为字符串数组。然后就可以调用了

int dec = int.Parse(hex, System.Globalization.NumberStyles.HexNumber);

将每个十六进制转换为其十进制表示。

【讨论】:

以上是关于如何在 c#.net 中将十六进制转换为十进制? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在C中将十六进制字符串转换为二进制字符串?

如何在C ++中将二进制转换为十六进制

如何在 C++ 中将十六进制数字转换为二进制?

如何在 C 中将字节数组转换为十六进制字符串?

如何在C中将无符号字符数组转换为十六进制字符串

在 C 中将二进制转换为十进制会出错