首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C#十六进制到ascii

C#十六进制到ascii
EN

Stack Overflow用户
提问于 2011-04-11 00:57:08
回答 2查看 85.2K关注 0票数 21

我正在尝试将十六进制字符串转换为ASCII,使用如下代码:

代码语言:javascript
复制
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);
}

但我得到了一个外部或边界异常,我确信这是一个明显的错误,但我尝试过的其他代码也不能工作。我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2011-04-11 01:04:10

代码语言:javascript
复制
String hs = hexString.Substring(i, i + 2);
System.Convert.ToChar(System.Convert.ToUInt32(hexString.Substring(0, 2), 16)).ToString();

你有没有注意到你从未使用过hs

你要一遍又一遍地转换前两个字符?

票数 2
EN

Stack Overflow用户

发布于 2011-04-11 00:59:53

由于要将索引递增2,因此需要在字符串长度结束前停止循环。否则,循环的最后一次迭代将尝试读取超出字符串末尾的字符。

代码语言:javascript
复制
for (int i = 0; i < hexString.Length - 1, i += 2)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5613279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档