一、二進位轉十進位
二進位是計算機內部使用的一種基本進位計數系統,而人們常用的是十進位計數系統。要將二進位數轉換為十進位數,可以採用以下方法:
以二進位數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-tw/n/159550.html
微信掃一掃
支付寶掃一掃