進(jìn)制轉(zhuǎn)換

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進(jìn)制轉(zhuǎn)2進(jìn)制
    public  static void tenToTwo(int n){
        int record = n;
        if (n == 0) {
            System.out.println(0);
        }
        ArrayList<Integer> list = new ArrayList<Integer>();
        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進(jìn)制轉(zhuǎn)2進(jìn)制:"+ record +"->" + strBu.toString());
    }
    
    
    
    // 10進(jìn)制轉(zhuǎn)8進(jìn)制
    public  static void tenToEight(int n){
        int record = n;
        if (n == 0) {
            System.out.println(0);
        }
        ArrayList<Integer> list = new ArrayList<Integer>();
        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進(jìn)制轉(zhuǎn)8進(jìn)制:"+ record +"->" + strBu.toString());
    }
    
    // 10進(jìn)制轉(zhuǎn)16進(jìn)制
    public  static void tenToSixs(int n){
        int record = n;
        if (n == 0) {
            System.out.println(0);
        }
        ArrayList<String> list = new ArrayList<String>();
        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進(jìn)制轉(zhuǎn)16進(jìn)制:"+ record +"->" + strBu.toString());
    }
    
    /**其他進(jìn)制轉(zhuǎn)化為10進(jìn)制
     * 我們平時用到Integer.parseInt("123");其實默認(rèn)是調(diào)用了int i =Integer.parseInt("123",10);
     * 其中10代表的默認(rèn)是10進(jìn)制的,轉(zhuǎn)換的過程可以看成: 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進(jìn)制轉(zhuǎn)換為10進(jìn)制
        System.out.println("16進(jìn)制轉(zhuǎn)換為10進(jìn)制:"+"76E"+"->"+Integer.parseInt("76E", 16));
        // 8進(jìn)制轉(zhuǎn)換為10進(jìn)制
        System.out.println("8進(jìn)制轉(zhuǎn)換為10進(jìn)制:"+"1010"+"->"+Integer.parseInt("1010", 8));
        // 2進(jìn)制轉(zhuǎn)換為10進(jìn)制
        System.out.println("2進(jìn)制轉(zhuǎn)換為10進(jìn)制:"+"1010"+"->"+Integer.parseInt("1010", 2));
    }
    
    // 2進(jìn)制轉(zhuǎn)10進(jìn)制
    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<ch.length;i++){
            int temp = 0;
            if(ch[i] =='1'){
                temp = 1;
            }
            sum = sum * 2 + temp;
        }
        System.out.println("2進(jìn)制轉(zhuǎn)10進(jìn)制:"+ n +"->" + sum);
    }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1、正整數(shù)轉(zhuǎn)二進(jìn)制 2、負(fù)整數(shù)轉(zhuǎn)二進(jìn)制 3、小數(shù)轉(zhuǎn)二進(jìn)制
    衲誰誰閱讀 2,863評論 0 0
  • 霧迷(外1首) 幾聲鳥啼,叫醒了你, 你循著鳥叫的聲音在清晨的曦微中穿行, 太陽還沒有升起, 霧卻越來越濃, 終于...
    不語不問閱讀 249評論 3 1
  • 多態(tài)的優(yōu)點 消除類型之間的耦合關(guān)系 可替換性 可擴(kuò)充性 接口性 靈活性 簡化性多態(tài)存在的三個必要條件繼承重寫父類引...
    沒說再見閱讀 223評論 0 0
  • “楚雖三戶,亡秦必楚”,這是一條預(yù)言,并且得到了應(yīng)驗。秦失其鹿,天下共逐之,張楚首事發(fā)難,西楚破釜滅秦,然而二楚的...
    睡一夜就餿星人閱讀 986評論 0 2