java算法实现十进制转换为二进制、八进制和十六进制
时间: 2023-09-02 20:07:43 浏览: 180
好的,以下是Java算法实现十进制转换为二进制、八进制和十六进制的代码示例:
```java
public class NumberConversion {
public static void main(String[] args) {
int decimalNumber = 345; // 要转换的十进制数
String binaryNumber = decimalToBinary(decimalNumber);
String octalNumber = decimalToOctal(decimalNumber);
String hexadecimalNumber = decimalToHexadecimal(decimalNumber);
System.out.println("二进制数为:" + binaryNumber);
System.out.println("八进制数为:" + octalNumber);
System.out.println("十六进制数为:" + hexadecimalNumber);
}
// 十进制转二进制
public static String decimalToBinary(int decimalNumber) {
return Integer.toBinaryString(decimalNumber);
}
// 十进制转八进制
public static String decimalToOctal(int decimalNumber) {
return Integer.toOctalString(decimalNumber);
}
// 十进制转十六进制
public static String decimalToHexadecimal(int decimalNumber) {
return Integer.toHexString(decimalNumber);
}
}
```
运行结果:
```
二进制数为:101011001
八进制数为:531
十六进制数为:159
```
以上代码中的三个转换方法都是使用Java内置的方法来实现,分别是`Integer.toBinaryString()`、`Integer.toOctalString()`和`Integer.toHexString()`。如果需要手动实现这些转换算法,可以参考以下示例代码:
```java
public class NumberConversion {
public static void main(String[] args) {
int decimalNumber = 345; // 要转换的十进制数
String binaryNumber = decimalToBinary(decimalNumber);
String octalNumber = decimalToOctal(decimalNumber);
String hexadecimalNumber = decimalToHexadecimal(decimalNumber);
System.out.println("二进制数为:" + binaryNumber);
System.out.println("八进制数为:" + octalNumber);
System.out.println("十六进制数为:" + hexadecimalNumber);
}
// 十进制转二进制
public static String decimalToBinary(int decimalNumber) {
StringBuilder binaryNumber = new StringBuilder();
while (decimalNumber > 0) {
binaryNumber.insert(0, decimalNumber % 2);
decimalNumber /= 2;
}
return binaryNumber.toString();
}
// 十进制转八进制
public static String decimalToOctal(int decimalNumber) {
StringBuilder octalNumber = new StringBuilder();
while (decimalNumber > 0) {
octalNumber.insert(0, decimalNumber % 8);
decimalNumber /= 8;
}
return octalNumber.toString();
}
// 十进制转十六进制
public static String decimalToHexadecimal(int decimalNumber) {
StringBuilder hexadecimalNumber = new StringBuilder();
while (decimalNumber > 0) {
int remainder = decimalNumber % 16;
if (remainder < 10) {
hexadecimalNumber.insert(0, remainder);
} else {
hexadecimalNumber.insert(0, (char) ('A' + remainder - 10));
}
decimalNumber /= 16;
}
return hexadecimalNumber.toString();
}
}
```
以上代码中的三个转换方法都是使用基本算法来实现的。
阅读全文