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