Java进制间的互相转换

Java进制间的互相转换

平常使用或者听说的进制都有哪些进制:

  • 二 进制
  • 八 进制
  • 十 进制
  • 十六 进制
  • N 进制

二进制:0-1. 满2进1,以0b或0B开头。
十进制:0-9,满10进1.
八进制:0-7,满8进1.以数字0****开头表示
十六进制:0-9及A-F,满16进1.以0x或0X开头表示。此处A-F不区分大小写。如:0x21AF+1=0X21B0。

1、十进制转换成其他进制

当然,Java 中也已经将常用的进制转换方法封装好了,我们只需要调用对应方法即可。

转换方法返回
十进制 -> 二进制Integer.toBinary(int num)二进制字符串
十进制 -> 八进制Integer.toOctalString(int num)八进制字符串
十进制 -> 十六进制Integer.toHexString(int num)十六进制字符串
十进制 -> N 进制Integer.toString(int num, int N)N 进制字符串
public static void main(String[] args) {
        int num = 200;
        System.out.println(num + " 的二进制是:" + Integer.toBinaryString(num));     // 11001000
        System.out.println(num + " 的八进制是:" + Integer.toOctalString(num));      // 310
        System.out.println(num + " 的十六进制是:" + Integer.toHexString(num));      // c8  
        System.out.println(num + " 的三进制是:" + Integer.toString(num, 3));  	  // 21102
    }
2、十六进制转其他进制
2.1、16进制转二进制
	// 十六进制转二进制
	System.out.println(Integer.toBinaryString(Integer.valueOf("5", 16)));//101
2.2、16进制转成八进制
	//十六进制转成八进制
   System.out.println(Integer.toOctalString(Integer.valueOf("13", 16)));//23
2.3、16进制转10进制
    // 方法一:
	//16进制转10进制
    public static void from16To10(String s) {
        int i = Integer.parseInt(s, 16);
        System.out.println("十六进制[" + s + "]转换十进制结果[" + i + "]");
    }

	// 16进制如果这么写的话:0xAA 我们需要先处理之后再转换
	int i = Integer.parseInt(s.substring(2,s.length()),16); // 170
	
	// 方法二:
	//十六进制转换成十进制进制
    String s1 = Integer.valueOf("a",16).toString();
    System.out.println(s1);//10

3、二进制转其他进制
3.1、二进制转八进制
	//二进制转八进制
    System.out.println(Integer.toOctalString(Integer.parseInt("10011", 2)));//23
3.2、二进制转10进制
	// 方法一:
	//2进制转10进制
	public static void from2To10(String s){
        int i = Integer.parseInt(s, 2);
        System.out.println("二进制["+s+"]转换十进制结果["+i+"]");
    }
    
    // 方法二:
	String s1 = Integer.valueOf("1010",2).toString();
3.3、二进制转16进制
	// 方法一:
	//2进制转16进制
    public static void from2To16(String s){
        int i = Integer.parseInt(s, 2); //先把二进制转为十进制数字
        String str = String.format("%16x", i).trim(); //再把十进制数字转为十六进制
        System.out.println("二进制["+s+"]转换十六进制结果["+str+"]");
    }
  
   // 方法二:
   //二进制转十六进制
   System.out.println(Integer.toHexString(Integer.parseInt("0101", 2)));//5
4、八进制转其他进制
4.1、八进制转成二进制
	// 八进制转成二进制
    System.out.println(Integer.toBinaryString(Integer.valueOf("23", 8)));//10011
4.2、八进制转十进制
  // 方法一:
  //八进制转换成十进制进制
  String s1 = Integer.valueOf("12",8).toString();
  System.out.println(s1);//10

  // 方法二:
  // 8进制转换十进制
    System.out.println(Integer.parseInt("36432", 8));//return 15642
4.3、八进制转成十六进制
	// 八进制转成十六进制
    System.out.println(Integer.toHexString(Integer.valueOf("23", 8)));//13
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值