Java进制之间的转换

牢记这些呀,特别常用!

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

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

 十进制转成二进制 补0

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

2.二进制转成十进制

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

1
2
3
4
5
6
7
8
9
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:使用自定义逻辑实现二进制转换十进制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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.十进制转成八进制

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

4.八进制转成十进制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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.十进制转成十六进制

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

6.十六进制转成十进制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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;
    }
 
}
posted @   江南大才子  阅读(770)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示