一、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-hant/n/150182.html