C#简单实现26进制

6 篇文章 0 订阅

       在平常的生活和工作中我们最经常使用的是十进制,那么我们有没有想过自己写一个进制呢?例如说实现一个26进制。这就是我曾经的一个想法,在这里简单分享一下!

       首先,我们要实现26进制,我们要找到一些符号当做权位,用来记录这个数!我们很容易能想到刚好26个字母不多不少一一对应,可以用来做标记。像十进制一样逢十进一,我们可以逢Z进一,而这里的1用A来表示,2用B表示......依次用24用Y来代替,25用Z来代替。

       然后我们考虑进制转换的原理,不妨思考一下十进制转化二进制,就是用倒除的原理,把每次所得到的余数倒序写出来就是二进制,而26进制也可以拿这个倒除的原理,不断的拿余数除以26得到余数。接着把这些余数收集起来,依次取出就是我们的26进制了!想到这里是不是有些头绪了,方法也就不一而足了,下面是我个人的一个方法,这里用的是栈,代码如下:

 

       	/// <summary>
        /// 26进制
        /// </summary>
        /// <param name="num"></param>
        public static void SwitchDemo(int num)
        {
            //定义一个栈用来存储数据
            Stack stack=new Stack();
            //用来将所有的余数压入栈中,当商为零时压入最后一个余数跳出循环
            while (true)
            {
                //商
                int quotient = num / 26;
                //余数
                int remainder = num % 26;
                stack.Push(remainder);
                if (quotient == 0)
                {
                    break;
                }
            }
            int count = stack.Count;
            Console.Write("转化为26进制后是:");
            for (int i = 0; i < count; i++)
            {
                Console.Write((char)('a'+(int)stack.Pop()));
            }
            Console.WriteLine();
        }

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

对酒当歌﹏✍

您的鼓励是我写作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值