在Java中,将十进制数转换为二进制数主要有以下两种方法:
一、使用Integer类内置方法(推荐)
Java提供了`Integer`类中的`toBinaryString`方法,可快速实现十进制与二进制的转换。
示例代码:
```java
int decimal = 255;
String binaryStr = Integer.toBinaryString(decimal);
System.out.println(binaryStr); // 输出 11111111
```
适用场景:适用于整数转换,支持直接将十进制转换为二进制、八进制或十六进制。
二、手动实现(除基取余法)
通过数学逻辑手动计算,适合理解进制转换原理。
步骤:
除基取余:
用十进制数不断除以2,记录余数;
逆序排列:
将余数倒序组合成二进制数。
示例代码:
```java
public void decimalToBinary(int n) {
StringBuilder binary = new StringBuilder();
while (n > 0) {
int remainder = n % 2;
binary.insert(0, remainder); // 插入到字符串开头
n = n / 2;
}
System.out.println(binary.toString()); // 输出 11111111
}
```
注意事项:`int`类型最大支持32位,超出范围需使用`long`或`String`处理。
三、位运算实现
利用位移操作符(如左移)和掩码,通过位操作实现转换。
示例代码:
```java
public void binaryToDecimal(int n) {
int binaryNum = 0;
for (int i = 0; i < 32; i++) {
binaryNum |= (n & 1) << (31 - i);
}
System.out.println(binaryNum); // 输出 255
}
```
原理:通过逐位检查二进制位,并使用位移和掩码组合成十进制数。
总结
快速转换:优先使用`Integer.toBinaryString`方法,简洁高效;
手动实现:通过除基取余法或位运算,适合学习进制原理。