【发布时间】:2017-10-13 05:06:29
【问题描述】:
我想将十六进制转换为ASCII。
我尝试了不同的两种方法。但我没能成功。
方法一:
public void ConvertHex(String hexString)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hexString.Length; i += 2)
{
String hs = hexString.Substring(i, i + 2);
System.Convert.ToChar(System.Convert.ToUInt32(hexString.Substring(0, 2), 16)).ToString();
}
String ascii = sb.ToString();
StreamWriter wrt = new StreamWriter("D:\\denemeASCII.txt");
wrt.Write(ascii);
}
方法二:
public string HEX2ASCII(string hex)
{
string res = String.Empty;
for (int a = 0; a < hex.Length; a = a + 2)
{
string Char2Convert = hex.Substring(a, 2);
int n = Convert.ToInt32(Char2Convert, 16);
char c = (char)n;
res += c.ToString();
}
return res;
}
传入的错误消息:(
我该怎么办?
【问题讨论】:
-
请粘贴代码而不是图片
-
好的。我正在添加。
-
您正在尝试将由数字 0 到 F 组成的十六进制数转换为 Int32。解析器会在遇到 A~F 数字之一时抛出异常,因为它们是字母。 Int32 解析器不知道它们实际上是十六进制数字。
-
黑底白字图像是否应该与问题相关,还是纯粹是装饰性的?如果它是相关的,那么您可能想解释它显示的内容。它是您要解析的文本文件的内容吗?它是您试图模仿的十六进制转储的结果吗?无论哪种情况,“将十六进制转换为 ascii”都不是您想要的,因此该图像的存在很奇怪。
标签: c# hex ascii data-conversion