进制转换

import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {
        int n = 7;
        tenToTwo(n);
        tenToEight(n);
        tenToSixs(n);
        otherToTen();
        twoToTen("1010");
    }
    
    // 10进制转2进制
    public  static void tenToTwo(int n){
        int record = n;
        if (n == 0) {
            System.out.println(0);
        }
        ArrayList list = new ArrayList();
        while (n!=0) {
            list.add(n % 2);
            n = n / 2;
        }
        StringBuilder strBu = new StringBuilder();
        for(int i=list.size()-1;i>=0;i--){
            strBu.append(list.get(i));
        }
        System.out.println("10进制转2进制:"+ record +"->" + strBu.toString());
    }
    
    
    
    // 10进制转8进制
    public  static void tenToEight(int n){
        int record = n;
        if (n == 0) {
            System.out.println(0);
        }
        ArrayList list = new ArrayList();
        while (n!=0) {
            list.add(n % 8);
            n = n / 8;
        }
        StringBuilder strBu = new StringBuilder();
        for(int i=list.size()-1;i>=0;i--){
            strBu.append(list.get(i));
        }
        System.out.println("10进制转8进制:"+ record +"->" + strBu.toString());
    }
    
    // 10进制转16进制
    public  static void tenToSixs(int n){
        int record = n;
        if (n == 0) {
            System.out.println(0);
        }
        ArrayList list = new ArrayList();
        while (n!=0) {
            if(n % 16 == 10){
                list.add("a");
            } else if(n % 16 == 11){
                list.add("b");
            } else if(n % 16 == 12){
                list.add("c");
            } else if(n % 16 == 13){
                list.add("d");
            } else if(n % 16 == 14){
                list.add("e");
            } else if(n % 16 == 15){
                list.add("f");
            } else {
                list.add(String.valueOf(n % 16));
            }
            n = n / 16;
        }
        StringBuilder strBu = new StringBuilder();
        for(int i=list.size()-1;i>=0;i--){
            strBu.append(list.get(i));
        }
        System.out.println("10进制转16进制:"+ record +"->" + strBu.toString());
    }
    
    /**其他进制转化为10进制
     * 我们平时用到Integer.parseInt("123");其实默认是调用了int i =Integer.parseInt("123",10);
     * 其中10代表的默认是10进制的,转换的过程可以看成: i=  1*10*10+2*10+3
     * 若是 int i = Integer.parseInt("123",16); 即可以看成:  i = 1*16*16+2*16+3  
     */
    public static void otherToTen(){
        // 16进制转换为10进制
        System.out.println("16进制转换为10进制:"+"76E"+"->"+Integer.parseInt("76E", 16));
        // 8进制转换为10进制
        System.out.println("8进制转换为10进制:"+"1010"+"->"+Integer.parseInt("1010", 8));
        // 2进制转换为10进制
        System.out.println("2进制转换为10进制:"+"1010"+"->"+Integer.parseInt("1010", 2));
    }
    
    // 2进制转10进制
    public  static void twoToTen(String n){
        if (n == "0") {
            System.out.println(0);
        }
        char[] ch = n.toCharArray();
        int sum = 0;
        for(int i=0;i" + sum);
    }

}

你可能感兴趣的:(进制转换)