zoukankan      html  css  js  c++  java
  • 【小朽开源路-①初出茅庐】十进制转(2到16)进制原理及安卓实现

    前言

      我的开源路声明:[传送门]

      为了实现自己的目标,不幸自己就选择在博客园上练习自己英语。希望英语多,中文少,然后渐渐地成为习惯。加油!

    Subject

      实现十进制转(2到16)进制原理及安卓

    The Principle (原理)

      ①the Stack ADT (栈知识)

        小朽是活学活用,栈知识复习[传送门]

      ②the Short division (短除法)

        

      Start...

                  the jar struckture

       

      ALStack.java

    package sedion.jeffli.action;
    import java.util.ArrayList;import java.util.Stack;
    
    /**
     * My Open-Source road
     * @author Jeff Li
     *
     * @param <T>
     */
    public class ALStack<T> extends Stack<T> {
        
        /**
         * 
         */
        private static final long serialVersionUID = -1261738006146239371L;
        private ArrayList<T> stackList = null;
        
        //create an empty stack by creating an empty ArrayList
        public ALStack(){
            stackList = new ArrayList<T>();
        }
        
    }

      

      BaseStr.java

          

    package sedion.jeffli.action;
    
    import java.util.Scanner;
    
    
    public class BaseStr {
        public static void main(String[] args) {
            int num , b;
            Scanner keyIn = new Scanner(System.in);
            
            System.out.print("Enter a decimal number: ");
            num = keyIn.nextInt();
            
            System.out.print("Enter a base (2 to 16): ");
            b = keyIn.nextInt();
            System.out.print(" "+num+" base "+b+" is "+baseString(num, b));
        }
        
        //the short division principle
        public static String baseString(int num,int b){
            //digitChar.charAt(digit) is the character that represents the digit , 0 <= digit <= 15
            String digitChar = "0123456789ABCDEF",numStr = "";
            
            //stack holds the base-b digits of num
            ALStack<Character> stk = new ALStack<Character>();
            
            do{
                //push right-most digit on the stack
                stk.push(digitChar.charAt(num % b));
                
                //remove right-most digit form num
                num /= b;
                
            }while(num != 0);
            
            while(!stk.isEmpty()){
                
                //pop stack and add digit on top of stack to numStr
                numStr += stk.pop().charValue();
            }
            
            return numStr;
        }
    }

        *核心

          短除法原理,短除就是在除法中写除数的地方写两个数共有的质因数,然后落下两个数被公有质因数整除的商,之后再除,以此类推,直到结果互质为止

                    

        实现demo,its a bit easy ,right?

          
           //push right-most digit on the stack
                stk.push(digitChar.charAt(num % b));
                
                //remove right-most digit form num
                num /= b;

    Andriod Practice 

       源码下载:链接:http://pan.baidu.com/share/link?shareid=1403222381&uk=3307409781 密码:ub64

       应用下载:链接:http://pan.baidu.com/share/link?shareid=1403222381&uk=3307409781 密码:ub64

       勿喷,效果图

        

    寄读者,寄知识来源

       读者,你好!你我不相识,谢谢你们支持。我的梦想会越来越接近。keep on,共勉!

       知识来源 http://www.cnblogs.com/shitianzeng/articles/2336765.html

        知识来源于想着,我走路想着玩一个。就玩好了,星期六快乐。

  • 相关阅读:
    Kafka学习笔记之kafka高版本Client连接0.9Server引发的血案排查
    机器学习笔记之python实现朴素贝叶斯算法样例
    机器学习笔记之python实现支持向量机SVM算法样例
    机器学习笔记之AdaBoost算法详解以及代码实现
    机器学习笔记之python实现关联规则算法Apriori样例
    机器学习笔记之python实现AdaBoost算法
    F-47(copy 邓大顾)
    js 设置标题 空白
    微信授权验证
    iphone web 时间 问题
  • 原文地址:https://www.cnblogs.com/Alandre/p/3602526.html
Copyright © 2011-2022 走看看