如何在 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 中将十六进制转换为十进制? [复制]的主要内容,如果未能解决你的问题,请参考以下文章