
星海幻梦为您分享以下优质知识
在Java中,十进制转二进制主要有以下三种方法,涵盖内置方法、位运算和自定义逻辑实现:
一、使用内置方法(推荐)
Java提供了`Integer`类的`toBinaryString()`方法,可快速完成转换:
```java
int num = 100;
String binaryString = Integer.toBinaryString(num);
System.out.println(binaryString); // 输出1100100
```
优点:简洁高效,适用于快速转换。
二、位运算实现
通过位运算符(如`&`)逐位提取二进制位:
```java
int decimal = 156;
String binary = Integer.toBinaryString(decimal); // 或使用 String.format("%32s", Integer.toBinaryString(decimal)).replace(' ', '0')
System.out.println(binary); // 输出10011100
```
说明:`Integer.toBinaryString()`内部使用位运算实现,效率较高。
三、自定义逻辑实现(除基取余法)
通过循环除以2取余数,倒序拼接:
```java
public void binaryToDecimal(int n) {
StringBuilder binary = new StringBuilder();
while (n >
0) {
binary.insert(0, n % 2);
n /= 2;
}
System.out.println(binary.toString());
}
```
注意事项:
使用`StringBuilder`提高效率,避免字符串拼接开销;
处理负数时,`toBinaryString()`会返回补码表示。
四、其他方法
栈法:利用栈存储余数后倒序输出;
格式化输出:使用`String.format`补零至固定长度。
总结:优先使用`Integer.toBinaryString()`方法,若需自定义逻辑可参考除基取余法。注意处理负数时二进制表示的符号位。