一、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
微信掃一掃
支付寶掃一掃