前面程序报这个错误in thread "main" java.lang.NumberFormatException: For input string: "11111111111111111111111111110110"
时间: 2023-07-05 12:13:26 浏览: 72
这个错误是因为二进制字符串中没有包含符号位,而在Java中,负数的二进制字符串必须包含符号位。
修改代码如下,使用Integer.toBinaryString(num)方法将负数转换成二进制字符串形式时,需要使用int类型的最大值Integer.MAX_VALUE + 1L加上负数,这样可以得到包含符号位的二进制字符串:
```java
public class NegativeToBinary {
public static void main(String[] args) {
int num = -10;
System.out.println("原始负数:" + num);
// 将负数转换成二进制字符串(包含符号位)
String binaryStr = Integer.toBinaryString(Integer.MAX_VALUE + 1L + num);
System.out.println("二进制字符串:" + binaryStr);
// 将二进制字符串转换成负数
int result = Integer.parseInt(binaryStr, 2);
System.out.println("还原负数:" + result);
}
}
```
输出结果:
```
原始负数:-10
二进制字符串:11111111111111111111111111110110
还原负数:-10
```
这样就能正确地将负数转换成二进制形式,并通过二进制还原成负数。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)