在Java中,将输入的十进制数转换为二进制数主要有以下两种方法:
一、使用Integer类内置方法(推荐)
Java提供了Integer类的toBinaryString()方法,可快速实现进制转换。例如:
```java
int num = 255;
String binaryStr = Integer.toBinaryString(num);
System.out.println(binaryStr); // 输出11111111
```
该方法适用于十进制转二进制、八进制或十六进制,转换简洁高效。
二、手动实现除基取余法(基础算法)
通过循环除以2取余,将余数倒序拼接成二进制字符串。具体步骤如下:
1. 输入十进制数
2. 使用while循环,不断取余并更新商
3. 将余数逆序拼接
4. 处理负数时需注意补码表示
示例代码:
```java
public void binaryToDecimal(int n) {
StringBuilder sb = new StringBuilder();
while (n > 0) {
sb.insert(0, n % 2); // 插入到字符串开头
n /= 2;
}
System.out.println(sb.toString());
}
```
此方法适用于32位整数,超出范围需使用字符串存储。
三、其他注意事项
输入为负数时,Integer.toBinaryString()会返回补码形式
可结合Scanner类获取用户输入,例如:
```java
Scanner scanner = new Scanner(System.in);
int decimalNumber = scanner.nextInt();
String binaryStr = Integer.toBinaryString(decimalNumber);
System.out.println(binaryStr);
```
若需处理其他进制转换,可使用Integer.parseInt(String s, radix)方法。