我正在尝试使用以下命令将十六进制字符串转换为 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();
MessageBox.Show(ascii);
}
但我得到了一个超出或界限的异常,我确信它是一个明显的错误,但我尝试过的其他代码也不起作用。我究竟做错了什么?
此代码会将十六进制字符串转换为 ASCII,您可以将其复制粘贴到类中并使用它,而无需实例化
public static string ConvertHex(String hexString)
{
try
{
string ascii = string.Empty;
for (int i = 0; i < hexString.Length; i += 2)
{
String hs = string.Empty;
hs = hexString.Substring(i,2);
uint decval = System.Convert.ToUInt32(hs, 16);
char character = System.Convert.ToChar(decval);
ascii += character;
}
return ascii;
}
catch (Exception ex) { Console.WriteLine(ex.Message); }
return string.Empty;
}
Notes
2
= 号码。用于表示 ASCII 字符的 hexString 字符。
System.Convert.ToUInt32(hs, 16)
=“将 16 进制子字符串转换为无符号 32 位整数”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)