Java中Integer的常见基本进制转换方法以及JDK5Integer新特性

Integer中常见的基本进制转换:

十进制分别转换为二进制,八进制,十六进制

  • public static String toBinaryString(int i)
  • public static String toOctalString(int i)
  • public static String toHexString(int i)

十进制到其他进制

  • public static String toString(int i,int radix)

通过测试我们也发现了进制的范围:2-36
为什么呢?0,…9,a,…z一共36个


示例代码如下:

public class IntegerDemo {
	public static void main(String[] args) {
		//十进制到二进制,八进制,十六进制
		System.out.println(Integer.toBinaryString(100));
		System.out.println(Integer.toOctalString(100));
		System.out.println(Integer.toHexString(100));
		System.out.println("---------------------------");
		
		//十进制到其他进制
		System.out.println(Integer.toString(100,10));
		System.out.println(Integer.toString(100,2));
		System.out.println(Integer.toString(100,8));
		System.out.println(Integer.toString(100,16));
		System.out.println(Integer.toString(100,5));
		System.out.println(Integer.toString(100,7));
		System.out.println(Integer.toString(100,-7));
		System.out.println(Integer.toString(100,70));
		System.out.println(Integer.toString(100,1));
		System.out.println(Integer.toString(100,32));
		System.out.println(Integer.toString(100,37));
		System.out.println(Integer.toString(100,36));
		System.out.println("---------------------------");
		
		//其他进制到十进制
		//NumberFormatException
		System.out.println(Integer.parseInt("100",10));
		System.out.println(Integer.parseInt("100",2));
		System.out.println(Integer.parseInt("100",8));
		System.out.println(Integer.parseInt("100",16));
		System.out.println(Integer.parseInt("100",23));
		System.out.println(Integer.parseInt("123",2));
	}
}

JDK5的新特性:

  • 自动装箱:把基本类型转换为包装类类型
  • 自动拆箱:把包装类类型转换为基本类型

注意一个小问题:
在使用时,Integer x = null;上面的代码会出现NullPointerException
建议先判断是否为null,再进行使用


示例代码如下:

public class IntegerDemo {
	public static void main(String[] args) {
		//定义了一个int类型的包装类类型变量
		//Integer i = new Integer(100);
		Integer ii = 100;
		ii += 200;
		System.out.println("ii:"+ii);
		
		//反编译之后的代码
		//首先,把一个int类型的转换成Integer类型的
		//Integer ii = Integer.valueOf(100);//自动装箱
		//ii.intValue()返回的是Integer类型的int值,在调用valueof,转换为Integer,赋值给ii
		//ii = Integer.valueOf(ii.intValue()+200);//自动拆箱,再自动装箱
		//System.out.println((new StringBuilder("ii:")).append("i1:").toString());
		
		Integer iii = null;
		//NullPointerException
		if(iii != null) {
			iii += 1000;
			System.out.println(iii);
		}
		
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值