问题:
在一些特定的情况下,程序中需要用到进制之间的转化,现在来说说十进制和十六进制的转化。
其实java进制转换非常的简单。
那问什么还要说这个问题呢?
因为在转化的时候遇到一个问题。。。
记录一下,防止再次发生。
一、十六进制转十进制
1.错误的做法
其实对于这种写法,部分是可以使用的(十六进制表示的是正数可以使用),但是当十六进制表示的是负数的时候就会抛异常了:
Exception in thread "main" java.lang.NumberFormatException: For input string: "FFFFFC19"
这是因为负数的十六进制所表示的值超出了Integer的范围,所以会抛出此异常。
2.正确的做法:
使用BigInteger就可以解决上面的问题
二、十进制转十六进制
这个就很容易了。
%X就是格式化成十六进制(X就是大写,x就是小写),8表示8位,0表示如果不够8位则往前面补0。