Java中编写二进制,十进制,十六进制互相转换,用for和if不用特殊符号和关键字
时间: 2024-12-06 09:21:11 浏览: 20
在Java中,你可以使用`byte`、`int`等基本数据类型以及循环结构来实现二进制、十进制和十六进制之间的相互转换。这里是一个简单的示例,使用`String`数组存储基数,并通过`Character.digit()`函数获取每个数字对应的值:
```java
public class NumberConverter {
private static final String[] BINARY_DIGITS = {"0", "1"};
private static final String[] DECIMAL_DIGITS = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
private static final String[] HEX_DIGITS = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };
public static String binaryToDecimal(int binary) {
StringBuilder sb = new StringBuilder();
for (int i = 31; i >= 0; i--) {
if ((binary & (1 << i)) != 0) {
sb.append(DECIMAL_DIGITS[binary & 0xF]);
binary >>= 4;
} else {
sb.append('0');
}
}
return sb.reverse().toString();
}
public static int decimalToBinary(int decimal) {
StringBuilder sb = new StringBuilder();
while (decimal > 0) {
sb.append(BINARY_DIGITS[decimal % 2]);
decimal /= 2;
}
return Integer.parseInt(sb.toString(), 2);
}
public static String decimalToHex(int decimal) {
char[] hexChars = new char[2];
hexChars[0] = HEX_DIGITS[decimal / 16];
hexChars[1] = HEX_DIGITS[decimal % 16];
return new String(hexChars);
}
// 同理可以添加一个从十六进制到其他进制的转换方法
// ...
}
```
在这个例子中,我们没有直接使用特殊的运算符或关键字,而是手动处理每一位的转换。不过请注意,实际项目中推荐使用`Integer.toBinaryString()`、`Integer.toHexString()`等内置方法来进行转换,因为它们更简洁且效率更高。
阅读全文