一、Java語言中10進位和16進位的表示方式
在Java語言中,10進位和16進位都可以表示為整數類型,其中整型包含四個位元組,即32位,可以表示從-2^31到2^31-1的整數值,十進位表示的整型數,可以寫成以0~9任意一個數字為結尾的數字序列,比如1234。16進位表示的整型數,可以寫成以0x開頭的數字序列,其中a~f表示10~15的數字,比如0x10表示16,0xff表示255。
二、Java實現10進位轉16進位的方法
Java實現10進位轉16進位有兩種方法。第一種方法是使用Java內置的方法,即使用Integer類的toHexString(int i)方法,該方法接受一個十進位整數,返回其對應的十六進位字元串。示例代碼如下:
int decNum = 1234; String hexNum = Integer.toHexString(decNum); System.out.println(hexNum); //輸出結果:4d2
第二種方法是自己編寫方法實現10進位轉16進位。10進位轉16進位的流程是將10進位整數從右往左每4位一組轉換成16進位數字,然後從左往右組合一起即為16進位整數。具體實現可以通過使用位運算符或者模運算符實現。示例代碼如下:
public static String decimalToHex(int decNum) { StringBuilder hexNum = new StringBuilder(); while (decNum != 0) { int hex = decNum & 0xf; //取最低4位的值 if (hex >>= 4; //右移4位 } return hexNum.reverse().toString(); //反轉字元串 } int decNum = 1234; String hexNum = decimalToHex(decNum); System.out.println(hexNum); //輸出結果:4d2
三、Java實現16進位轉10進位的方法
Java實現16進位轉10進位也有兩種方法。第一種方法是使用Java內置的方法,即使用Integer類的parseInt(String s, int radix)方法,該方法接受一個字元串和一個進位數,返回字元串對應進位數的整數值。示例代碼如下:
String hexNum = "4d2"; int decNum = Integer.parseInt(hexNum, 16); System.out.println(decNum); //輸出結果:1234
第二種方法是自己編寫方法實現16進位轉10進位。16進位轉10進位的流程是將16進位字元串從右往左每一位轉換成10進位數字,然後根據權值原理乘以對應的16的冪次方,最後累加起來即為10進位整數。具體實現可以通過使用位運算符或者乘方函數實現。示例代碼如下:
public static int hexToDecimal(String hexNum) { int decNum = 0; for (int i = hexNum.length() - 1; i >= 0; i--) { char ch = hexNum.charAt(i); int hex = 0; if (ch >= '0' && ch = 'a' && ch = 'A' && ch <= 'F') { hex = ch - 'A' + 10; } decNum += hex * Math.pow(16, hexNum.length() - 1 - i); } return decNum; } String hexNum = "4d2"; int decNum = hexToDecimal(hexNum); System.out.println(decNum); //輸出結果:1234
原創文章,作者:PLQG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/150182.html