首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >编写基本转换工具并遇到十六进制问题

编写基本转换工具并遇到十六进制问题
EN

Stack Overflow用户
提问于 2016-08-22 14:25:28
回答 1查看 31关注 0票数 1

我目前的任务是编写一个到不同系统的转换器。转换成二进制没有问题,但我在使用十六进制时遇到了一些问题。下面是我的代码:

代码语言:javascript
运行
AI代码解释
复制
    public string[] ConvertInput(int pInput, int pBase)
    {
        List<string> Output = new List<string>();
        int Tmp = pInput;
        int TmpBin;

        for (int i = 0; Tmp > 0; i++)
        {
            TmpBin = Tmp % pBase;
            Tmp = Tmp / pBase;
            if (TmpBin >= 10)
            {
                char c = (char)TmpBin;
                Output.Add(c.ToString());
            }
            else
            {
                Output.Add(TmpBin.ToString()); 
            }
        }

        string[] OutArray = Output.ToArray();

        Array.Reverse(OutArray);

        return OutArray;
    }

因此,如果我尝试将数字15555转换为十六进制,它应该返回3cc3,但它所做的是返回3\f\f3

我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-22 14:48:42

而不是这样:

代码语言:javascript
运行
AI代码解释
复制
if (TmpBin >= 10)
{
    char c = (char)TmpBin;
    Output.Add(c.ToString());
}

执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
if (TmpBin >= 10)
{
    char c = (char)('A' + (TmpBin - 10));
    Output.Add(c.ToString());
}

在您的版本中,您将十进制值10、11、12等直接转换为字符,并且(例如)代码为10的字符是换行符,而不是'A'

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39082074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文