在Java中将数字转换为二进制表示,主要有以下几种方法:
一、使用 `Integer` 类的内置方法
Java的 `Integer` 类提供了便捷的方法进行进制转换,具体如下:
`toBinaryString(int i)` 将整数转换为二进制字符串。例如:
```java
int num = 255;
String binaryStr = Integer.toBinaryString(num);
System.out.println(binaryStr); // 输出: 11111111
```
该方法通过位运算实现转换,适用于整数类型。
`toString(int radix)`
支持将整数转换为任意进制字符串,基数参数 `radix` 可以指定为2(二进制)、8(八进制)、10(十进制)或16(十六进制)。例如:
```java
int decimal = 10;
String binaryStr = Integer.toString(decimal, 2);
System.out.println(binaryStr); // 输出: 1010
```
`parseInt(String s, int radix)`
可将二进制字符串转换为整数,基数参数需为2。例如:
```java
String binaryStr = "1010";
int num = Integer.parseInt(binaryStr, 2);
System.out.println(num); // 输出: 10
```
二、手动实现转换(适用于学习)
除基取余法
通过不断除以2并记录余数,将余数倒序排列。例如:
```java
public class DecimalToBinary {
public static void main(String[] args) {
int num = 156;
StringBuilder binary = new StringBuilder();
while (num > 0) {
binary.insert(0, num % 2);
num /= 2;
}
System.out.println(binary.toString()); // 输出: 10011100
}
}
```
该方法适用于正整数,负数需按补码表示。
移位操作法
利用位运算将最高位移至最低位,其余位清零,再通过按位与操作提取二进制位。例如:
```java
public class BinaryConversion {
public static void main(String[] args) {
int num = 10;
for (int i = 31; i >= 0; i--) {
System.out.print((num >>> i) & 1);
}
System.out.println(); // 输出: 1010
}
}
```
该方法同样适用于正整数,负数需注意补码处理。
三、注意事项
数据类型限制: 上述方法仅适用于整数类型(`int`)。若需处理更大范围的数字,建议使用 `Long` 类并调用 `toBinaryString(long i)` 方法。 浮点数转换
通过以上方法,可灵活实现十进制与二进制之间的转换。