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