gpt4 book ai didi

Java - 数字格式异常。将长二进制字符串转换为 dec

转载 作者:搜寻专家 更新时间:2023-11-01 02:23:34 28 4
gpt4 key购买 nike

我想将二进制字符串转换为 dec。

public class HelloWorld{

public static void main(String []args){

System.out.println(Integer.parseInt("000011011111110111000001110000111110", 2));
}
}

我得到错误:

java.lang.NumberFormatException: For input string: "000011011111110111000001110000111110".

如何解决?

最佳答案

简短的解决方案 - Integers根本不要那么高。这不是一个整数。

ParseInt()文档提到,您收到一个字符串和一个基数,并取回转换结果。但是,整数是 4 个字节 = 32 位,因此范围从 -(2^31)2^31-1,而您的号码 - 11011111110111000001110000111110,实际上是 32位长 - 这意味着它大于最大值。因此,函数抛出这个 NumberFormatException - 这不是 int 的有效值。

如果您想修复它,我会使用 ByteBuffer ,如所述here:

ByteBuffer buffer = ByteBuffer.wrap(myArray);
buffer.order(ByteOrder.LITTLE_ENDIAN); // if you want little-endian
int result = buffer.getShort(); // use with a bigInteger instead. you could use any of the bytebuffer functions described in the link :)

关于Java - 数字格式异常。将长二进制字符串转换为 dec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32033329/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com