
公务员全知道为您分享以下优质知识
在Java中,将十进制数转换为二进制数主要有以下两种方法:
一、使用`Integer`类内置方法(推荐)
Java提供了`Integer`类中的`toBinaryString()`方法,可快速实现十进制到二进制的转换。具体使用方式如下:
```java
int num = 255;
String binaryStr = Integer.toBinaryString(num);
System.out.println(binaryStr); // 输出: 11111111
```
该方法适用于整数转换,支持二进制、八进制、十六进制等多种进制转换。
十六进制转十进制
若需将十六进制字符串转换为十进制数,可使用`Integer.parseInt()`方法:
```java
String hexStr = "0x3E8";
int decimalNum = Integer.parseInt(hexStr.substring(2), 16);
System.out.println(decimalNum); // 输出: 1000
```
需注意去掉`0x`前缀并指定基数为16。
二、手动实现“除2取余法”
若需自定义转换逻辑,可通过循环实现“除2取余,逆序排列”法:
核心步骤
- 用被除数连续除以2,记录余数;
- 将余数逆序拼接成二进制字符串。
示例代码
```java
import java.util.Scanner;
public class DecimalToBinary {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入十进制数: ");
int num = scanner.nextInt();
String binary = "";
while (num >
0) {
binary = (num % 2) + binary;
num /= 2;
}
System.out.println("二进制表示: " + binary);
}
}
```
该代码通过`Scanner`获取用户输入,使用循环和字符串拼接完成转换。
三、注意事项
数据类型限制:
`Integer`类方法适用于32位整数,超出范围需使用`Long`类或字符串处理;
小数转换:上述方法仅支持整数转换,小数部分需单独处理(如“乘2取整”法)。