当前位置:编程学习 > C#/ASP.NET >>

求一个进制转换的问题

有个10进制数如100,转成16进制,变成64,把64当成10进制使用.这个函数怎么写.

100->64
180->B8,关键这个B8无法对应到10进制数. --------------------编程问答-------------------- C# 进制之间的转换 --------------------编程问答--------------------

            int i = 100;
            string hex = Convert.ToString(i, 16);
            i = Convert.ToInt32(hex);
--------------------编程问答--------------------

    /// <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;
    }
--------------------编程问答-------------------- 把64当成10进制使用
这不是胡闹么。 --------------------编程问答-------------------- 180应该是B4 --------------------编程问答--------------------         Response.Write(toN36(180, 16));
        Response.End();

        ===
        Response.Write(toN10("B4", 16));
        Response.End(); --------------------编程问答-------------------- 你想实现什么效果呢,转成十六进制,如果出现字母的话确实是不能当十进制用了。
你预想的结果是什么?180转正B4,你希望他看成多大的十进制呢。。。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,