求一个进制转换的问题

grayhoundd 2013-04-03 05:20:06
有个10进制数如100,转成16进制,变成64,把64当成10进制使用.这个函数怎么写.

100->64
180->B8,关键这个B8无法对应到10进制数.
...全文
68 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
leafmao 2013-04-03
  • 打赏
  • 举报
回复
你想实现什么效果呢,转成十六进制,如果出现字母的话确实是不能当十进制用了。 你预想的结果是什么?180转正B4,你希望他看成多大的十进制呢。。。
md5e 2013-04-03
  • 打赏
  • 举报
回复
Response.Write(toN36(180, 16)); Response.End(); === Response.Write(toN10("B4", 16)); Response.End();
md5e 2013-04-03
  • 打赏
  • 举报
回复
180应该是B4
threenewbee 2013-04-03
  • 打赏
  • 举报
回复
把64当成10进制使用 这不是胡闹么。
md5e 2013-04-03
  • 打赏
  • 举报
回复

    /// <summary>
    /// 36进制内的数值转10进制
    /// </summary>
    /// <param name="radixnum"></param>
    /// <param name="radix"></param>
    /// <returns></returns>
    public int toN10(string radixnum, int radix)
    {
        string _num = "0123456789ABCDEFGHIJKLMNOPQRSTUVWSYZ";
        char[] _ary = radixnum.ToCharArray();
        int _log = 1;
        int sn = 0;
        for (int i = _ary.Length - 1; i >= 0; i--)
        {
            sn = sn + _num.IndexOf(_ary[i]) * _log;
            _log = _log * radix;
        }
        return sn;
    }
    /// <summary>
    /// 10进制转36进制
    /// </summary>
    /// <param name="n10"></param>
    /// <param name="radix"></param>
    /// <returns></returns>
    private string toN36(int n10, int radix)
    {
        string _num = "0123456789ABCDEFGHIJKLMNOPQRSTUVWSYZ";
        int sn = n10;
        string _rul = string.Empty;
        while (sn >= radix)
        {
            _rul = _num.Substring(sn % radix, 1) + _rul;
            sn = sn / radix;
        }
        return _num.Substring(sn % radix, 1) + _rul;
    }
bdmh 2013-04-03
  • 打赏
  • 举报
回复

            int i = 100;
            string hex = Convert.ToString(i, 16);
            i = Convert.ToInt32(hex);
  • 打赏
  • 举报
回复

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧