一、二進制轉十進制
二進制是計算機內部使用的一種基本進位計數系統,而人們常用的是十進制計數系統。要將二進制數轉換為十進制數,可以採用以下方法:
以二進制數110101為例,將該數的每一位上的數字分別乘以2的n次方(n為該數的位數-1)再相加起來,即可得到十進制數。
/**
* 二進制轉十進制
* @param binaryStr 二進制字符串
* @return 十進制數
*/
public static int binaryToDecimal(String binaryStr) {
int decimal = 0;
int len = binaryStr.length();
for (int i = 0; i < len; i++) {
int num = binaryStr.charAt(len - i - 1) - '0';
decimal += num << i;
}
return decimal;
}
以上代碼實現了將一個二進制字符串轉換為十進制數的功能,具體思路如下:將二進制字符串每一位上的數字分別提取出來,然後將該數字乘以2的n次方,這裡的n是該數字所處的位數減1;然後將各位乘積相加就能得到二進制數對應的十進制數了。
二、二進制轉十進制在線計算
在實際應用中,我們可能並不需要手動編寫二進制轉十進制的函數,因為已有很多在線計算器可以將二進制數轉換為十進制數,如下圖所示:
三、十進制轉十六進制
在實際編程中,我們可能需要將十進制數轉換為十六進制數。這時候,可以採用以下方法:
將十進制數不斷除以16,直到商為0,每次將餘數轉換為十六進制數,然後將這些十六進制數倒序排列,就得到了十進制數轉換後的十六進制數。
/**
* 十進制轉十六進制
* @param decimal 十進制數
* @return 十六進制字符串
*/
public static String decimalToHex(int decimal) {
StringBuilder sb = new StringBuilder();
while (decimal > 0) {
int num = decimal % 16;
if (num < 10) {
sb.insert(0, num);
} else {
sb.insert(0, (char) ('A' + num - 10));
}
decimal /= 16;
}
return sb.toString();
}
以上代碼實現了將一個十進制數轉換為十六進制字符串的功能,具體思路如下:將十進制數不斷除以16,直到商為0,每次將餘數轉換為十六進制數,然後將這些十六進制數倒序排列即可。
四、結語
Java是一門廣泛應用於企業級開發的高級編程語言,在其中的基本數據類型與進制轉換時常用到的基本概念十進制、二進制和十六進制的轉換已經成為了必備的基本功。相信通過本篇文章的闡述,您對Java中的二進制轉十進制已經有了更加深刻的理解。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/159550.html
微信掃一掃
支付寶掃一掃