Java中编写二进制,十进制,十六进制互相转换,用for和if不用特殊符号和关键字和调用类
时间: 2024-12-06 15:21:01 浏览: 22
在Java中,你可以通过位运算符和简单的逻辑控制结构实现二进制、十进制和十六进制之间的转换,不需要特殊的符号或关键字。这里是一个示例,展示了如何用for循环和if条件语句进行基本的转换:
```java
public class NumberConverter {
public static String binaryToDecimal(int binary) {
int decimal = 0;
for (int i = 0; i < 32; i++) { // 假设我们处理的是32位二进制数
if ((binary & (1 << i)) != 0) {
decimal += Math.pow(2, i);
}
}
return Integer.toString(decimal);
}
public static int decimalToBinary(int decimal) {
StringBuilder sb = new StringBuilder();
while (decimal > 0) {
sb.append(decimal % 2);
decimal /= 2;
}
return Integer.parseInt(sb.reverse().toString(), 2);
}
public static String hexadecimalToDecimal(int hex) {
int decimal = 0;
for (int i = 0; i < 4; i++) {
char digit = Character.digit(hex, 16); // 获取十六进制数字对应的十进制值
decimal += digit * Math.pow(16, i);
}
return Integer.toString(decimal);
}
public static String decimalToHexadecimal(int decimal) {
return Integer.toHexString(decimal).toUpperCase(); // Java内置函数将十进制转为十六进制并大写
}
public static void main(String[] args) {
System.out.println(binaryToDecimal(1010)); // 输出:10
System.out.println(decimalToBinary(10)); // 输出:1010
System.out.println(hexadecimalToDecimal(0xA)); // 输出:10
System.out.println(decimalToHexadecimal(10)); // 输出:A
}
}
```
在这个例子中,我们分别实现了四个静态方法,每个方法负责一种转换,并在`main`方法中展示了如何使用它们。注意,这个实现假设输入都是非负整数。
阅读全文