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

        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;
        }

效果:

时间: 2024-09-20 09:38:38

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

java中Integer包装类的详细讲解(java二进制操作,所有进制转换)

程序员都很懒,你懂的! 今天为大家分享的是Integer这个包装类.在现实开发中,我们往往需要操作Integer,或者各种进制的转换等等.我今天就为大家详细讲解一下Integer的使用吧.看代码: package com.herman.test; public class IntegerTest { public static void main(String[] args) { System.out.println("Integer中的常量***************************

数据结构 栈的基本操作 进制转换 为什么运行后会陷入死循环

问题描述 数据结构 栈的基本操作 进制转换 为什么运行后会陷入死循环 ```#include #include #include #define OK 1 #define ERROR -1 #define OVERFLOW -1 #define ENDFLAG 0 #define STACK_INIT_SIZE 100//初始分配量 #define STACKINCREMENT 10//增量 typedef int Status; typedef int SElemType; typedef s

c语言-一直不能输出正确结果 栈关于进制转换的 求助

问题描述 一直不能输出正确结果 栈关于进制转换的 求助 #include #include #include #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 #define ERROR 0 #define TRUE 1 typedef int ElemType; typedef struct{ ElemType *base; ElemType *top; int Stacksize; }sqStack; ElemType e; sqSt

数据结构栈实现进制转换遇到问题十进制数255 输出的十六进制数是F15F15 哪里错了

问题描述 数据结构栈实现进制转换遇到问题十进制数255 输出的十六进制数是F15F15 哪里错了 //进制转换函数 void conversion(int n,int r) { SqStack S;//构建一个栈 InitStack(S); while(n) { Push(S,n%r);//数据入栈 n=n/r; } while(!StackEmpty(S)) { SElemType e; Pop(S,e);//数据出栈 switch(e) { case 0: break; case 1: br

数据结构实验之栈一:进制转换

数据结构实验之栈一:进制转换 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 输入一个十进制整数,将其转换成对应的R(2<=R<=9)进制数,并输出. Input 第一行输入需要转换的十进制数: 第二行输入R. Output 输出转换所得的R进制数. Example Input 1279 8 Example Output 2377 Code realization #include <stdio.h> #in

JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都是很痛苦的事情,但是程序之路这么长,你必须精通的不能再精通一门语言才行(有点说大了哈),但是最起码你要如鱼得水吧,我准备的资料有: JAVA编程思想 深入浅出JAVA 黑马,传智,慕课,极客学院等-的视频 Google搜索 我们既然是重新学一遍,那我们尽量就是用记事本去敲代码好了,这里我用notep

进制转换-java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制

问题描述 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制,但是老是运行出错.大神们能不能给个小例子解释一下,谢谢 解决方案 http://blog.csdn.net/vanezuo/article/details/6556768 解决方案二: 使用函数啊,你找一下,Java有相应的函数能做到 解决方案三: 如果你的程序出错,你贴出你的程序才知道. 也可以参考我给你的

jstack:将Process Explorer中看到的进程ID做16进制转换,到ThreadDump中加上0x 前缀即能找到对应线程(转)

原文链接:http://www.iteye.com/topic/1133941 症状: 使用Eclipse win 64位版本,indigo及kepler都重现了,使用tomcat 6.0.39,jdk1.6.u45及1.7u45均尝试了,也重现. 重现步骤很简单,使用debug模式启动时较容易出来,debug启动tomcat,(我的是webapp)然后在页面上随便点点即发现eclipse僵死,且任何从浏览器发出的请求都卡住不能被接收执行. 1.然后从任务管理器直接杀掉eclipse对应的jav

数据结构 进制转换问题 编译能够通过 但是最后代码运行结果没有输出啊!!

问题描述 数据结构 进制转换问题 编译能够通过 但是最后代码运行结果没有输出啊!! #include #include #include #define OK 1 #define ERROR -1 #define OVERFLOW -1 #define ENDFLAG 0 #define STACK_INIT_SIZE 100//初始分配量 #define STACKINCREMENT 10//增量 typedef int Status; typedef int SElemType; typed