【小朽开源路-①初出茅庐】十进制转(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

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

posted @   子木聊出海  阅读(1048)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示