問題:
在一些特定的情況下,程序中需要用到進制之間的轉化,現在來說說十進制和十六進制的轉化。
其實java進制轉換非常的簡單。
那問什么還要說這個問題呢?
因為在轉化的時候遇到一個問題。。。
記錄一下,防止再次發生。
一、十六進制轉十進制
1.錯誤的做法
其實對於這種寫法,部分是可以使用的(十六進制表示的是正數可以使用),但是當十六進制表示的是負數的時候就會拋異常了:
Exception in thread "main" java.lang.NumberFormatException: For input string: "FFFFFC19"
這是因為負數的十六進制所表示的值超出了Integer的范圍,所以會拋出此異常。
2.正確的做法:
使用BigInteger就可以解決上面的問題
二、十進制轉十六進制
這個就很容易了。
%X就是格式化成十六進制(X就是大寫,x就是小寫),8表示8位,0表示如果不夠8位則往前面補0。