Java进制之间的转换

牢记这些呀,特别常用!

1.十进制转成二进制 未补0

String s = Integer.toBinaryString(n)  //将十进制数转成字符串,例如n=5 ,s = "101"

 十进制转成二进制 补0

//输出结果:00000100
String bin = Integer.toBinaryString(4);
DecimalFormat df = new DecimalFormat("00000000");
String format = df.format(Integer.valueOf(bin));
System.out.println(format);         

2.二进制转成十进制

方法1:使用Integer.parseInt()实现二进制转换为十进制

import java.util.Scanner;
class BinaryToDecimal {
    public static void main(String args[]){
       Scanner input = new Scanner( System.in );
       System.out.print("Enter a binary number: ");
       String binaryString =input.nextLine();
       System.out.println("Output: "+Integer.parseInt(binaryString,2));
    }
}

方法2:使用自定义逻辑实现二进制转换十进制

public class Details {
    public static void main(String args[]) {
        Details obj = new Details();
        System.out.println("110 --> " + obj.BinaryToDecimal(110));
        System.out.println("1101 --> " + obj.BinaryToDecimal(1101));
    }


    public int BinaryToDecimal(int binaryNumber) {
        int decimal = 0;
        int p = 0;
        while (true) {
            if (binaryNumber == 0) {
                break;
            } else {
                int temp = binaryNumber % 10;
                decimal += temp * Math.pow(2, p);
                binaryNumber = binaryNumber / 10;
                p++;
            }
        }
        return decimal;
    }
}

3.十进制转成八进制

//十进制转八进制
String octalString = Integer.toOctalString(9);
System.out.println("octalString====="+octalString);    

4.八进制转成十进制

public class DecimalFormatTest {
    public static void main(String[] args) {
        int octal = 116;
        int decimal = convertOctalToDecimal(octal);
        System.out.printf("%d 八进制 = %d十进制", octal, decimal);
    }

    public static int convertOctalToDecimal(int octal) {
        int decimalNumber = 0, i = 0;
        while(octal != 0) {
            decimalNumber += (octal % 10) * Math.pow(8, i);
            ++i;
            octal/=10;
        }
        return decimalNumber;
    }

}

5.十进制转成十六进制

//补充 十进制转16进制  输出结果:12
String hexString = Integer.toHexString(18);
System.out.println("hexString====="+hexString);    

6.十六进制转成十进制

import java.util.HashMap;
import java.util.Map;

public class DecimalTest {

    public static void main(String[] args) {
        //十六进制转10进制
       String hexString = Integer.toHexString(18);
        int covert = covert(hexString);
        System.out.println("covert======="+covert);

    }
     
    public static int covert(String content){
        int number=0;
        String [] HighLetter = {"A","B","C","D","E","F"};
        Map<String,Integer> map = new HashMap<>();
        for(int i = 0;i <= 9;i++){
            map.put(i+"",i);
        }
        for(int j= 10;j<HighLetter.length+10;j++){
            map.put(HighLetter[j-10],j);
        }
        String[]str = new String[content.length()];
        for(int i = 0; i < str.length; i++){
            str[i] = content.substring(i,i+1);
        }
        for(int i = 0; i < str.length; i++){
            number += map.get(str[i])*Math.pow(16,str.length-1-i);
        }
        return number;
    }

}
我话讲完!谁赞成?谁反对?
原文地址:https://www.cnblogs.com/wffzk/p/15523379.html