.Net栈的使用-一般操作与进制转换

简介: static void Main(string[] args) { Program main = new Program(); main.
        static void Main(string[] args)
        {

            Program main = new Program();
            main.testStack1();
           Console.WriteLine(main.testStack2(20, 2));
        }
        private void testStack1()
        {
            Stack<int> stack1 = new Stack<int>();
            stack1.Push(1);
            stack1.Push(2);
            stack1.Push(3);
            stack1.Push(4);

            while (true)
            {
                if (stack1.Count > 0)
                {
                    Console.WriteLine(stack1.Pop());
                }
                else
                {
                    break;
                }
            }
        }

        /// <summary>
        /// 利用栈进行进制转换
        /// </summary>
        /// <param name="N">10进制的数字</param>
        /// <param name="D">进制</param>
        /// <returns>转换后的字符串</returns>
        public string testStack2(int N, int D)
        {
            if (D < 2 || D > 16)
            {
                throw new ArgumentOutOfRangeException("D", "只支持2、8、10、16进制的转换!");
            }
            Stack<char> stack = new Stack<char>();
            do
            {
                //取余
                int Residue = N % D;
                char c = (Residue < 10) ? (char)(Residue + 48) : (char)(Residue + 55);
                stack.Push(c);
            } while ((N = N / D) != 0);//当商为0时代表运算结束
            string s = string.Empty;

            while (stack.Count > 0)
            {
                //弹出所有的元素
                s += stack.Pop().ToString();
            }
            return s;
        }


效果:


相关文章
|
6月前
|
开发框架 前端开发 .NET
七天.NET 8操作SQLite入门到实战 - (1)第七天BootstrapBlazor UI组件库引入
七天.NET 8操作SQLite入门到实战 - (1)第七天BootstrapBlazor UI组件库引入
|
开发框架 算法 .NET
一个简单高效低内存的.NET操作Excel开源框架 - MiniExcel
一个简单高效低内存的.NET操作Excel开源框架 - MiniExcel
159 0
|
5月前
|
网络协议 Java 程序员
TCP/IP协议栈是网络通信基础,Java的`java.net`包提供工具,使开发者能利用TCP/IP创建网络应用
【6月更文挑战第23天】 **TCP/IP协议栈是网络通信基础,它包含应用层(HTTP, FTP等)、传输层(TCP, UDP)、网络层(IP)、数据链路层(帧, MAC地址)和物理层(硬件信号)。Java的`java.net`包提供工具,使开发者能利用TCP/IP创建网络应用,如Socket和ServerSocket用于客户端和服务器通信。**
54 3
|
数据库 开发工具
国产化之 .NET Core 操作达梦数据库DM8的两种方式1
国产化之 .NET Core 操作达梦数据库DM8的两种方式1
259 0
|
6月前
|
存储 SQL 关系型数据库
七天.NET 8操作SQLite入门到实战 - 第三天SQLite快速入门
七天.NET 8操作SQLite入门到实战 - 第三天SQLite快速入门
|
缓存 开发框架 算法
.NET操作Excel高效低内存的开源框架 - MiniExcel
.NET操作Excel高效低内存的开源框架 - MiniExcel
124 0
.NET操作Excel高效低内存的开源框架 - MiniExcel
|
6月前
|
XML API 数据库
七天.NET 8操作SQLite入门到实战 - 第六天后端班级管理相关接口完善和Swagger自定义配置
七天.NET 8操作SQLite入门到实战 - 第六天后端班级管理相关接口完善和Swagger自定义配置
129 0
|
6月前
|
安全 数据库 数据安全/隐私保护
七天.NET 8操作SQLite入门到实战 - 第五天引入SQLite-net ORM并封装常用方法
七天.NET 8操作SQLite入门到实战 - 第五天引入SQLite-net ORM并封装常用方法
192 0
|
6月前
|
开发框架 .NET API
七天.NET 8操作SQLite入门到实战 - 第四天EasySQLite前后端项目框架搭建
七天.NET 8操作SQLite入门到实战 - 第四天EasySQLite前后端项目框架搭建
|
6月前
|
SQL Shell 数据库
七天.NET 8操作SQLite入门到实战 - 第二天 在 Windows 上配置 SQLite环境
七天.NET 8操作SQLite入门到实战 - 第二天 在 Windows 上配置 SQLite环境