java-十进制与十六进制的转化

问题:

在一些特定的情况下,程序中需要用到进制之间的转化,现在来说说十进制和十六进制的转化。

其实java进制转换非常的简单。

那问什么还要说这个问题呢?

因为在转化的时候遇到一个问题。。。

记录一下,防止再次发生。

一、十六进制转十进制

1.错误的做法

 

 其实对于这种写法,部分是可以使用的(十六进制表示的是正数可以使用),但是当十六进制表示的是负数的时候就会抛异常了:

 Exception in thread "main" java.lang.NumberFormatException: For input string: "FFFFFC19"

java-十进制与十六进制的转化_第1张图片

 

 这是因为负数的十六进制所表示的值超出了Integer的范围,所以会抛出此异常。

2.正确的做法:

使用BigInteger就可以解决上面的问题

java-十进制与十六进制的转化_第2张图片

 

 二、十进制转十六进制

这个就很容易了。

java-十进制与十六进制的转化_第3张图片

 

 %X就是格式化成十六进制(X就是大写,x就是小写),8表示8位,0表示如果不够8位则往前面补0。

你可能感兴趣的:(java-十进制与十六进制的转化)