当前位置: 首页 > 面试题库 >

Java,Long.parse二进制字符串

郭远
2023-03-14
问题内容

为什么这段代码会抛出NumberFormatException

String binStr = "1000000000000000000000000000000000000000000000000000000000000000";
System.out.println(binStr.length());// =  64
System.out.println(Long.parseLong(binStr, 2));

问题答案:

1000000000000000000000000000000000000000000000000000000000000000
大于 Long.MAX_VALUE

参见http://codingdict.com/questions/114817

考虑BigInteger(String val, int radix)改为使用。

编辑:

好,这对我来说是新的。看来,Integer.parseInt(binaryIntegerString, 2)Long.parseLong(binaryLongString, 2)解析二进制的符号-幅度不作为二进制补码。



 类似资料:
  • 问题内容: 我需要将二进制字符串转换为十六进制字符串,但是我有问题。我通过这种方法将二进制字符串转换为十六进制字符串: 没关系!但是我丢失了字符串左侧的零。例如: 该方法返回此:123456789ABCDEF,但我想返回此: 00000123456789ABCDEF 问题答案: 而不是我将使用解析值,然后以所需的宽度(在您的示例中为21)输出值:

  • 问题内容: 我也想将我的二进制(在字符串中)转换为十六进制字符串,这只是一个程序片段,因为该程序只是另一个更大程序的一部分: 问题是我不知道填充是否有效,但是我确定该程序返回了二进制字符串的错误十六进制转换,我正在尝试这样做: http://www.wikihow.com/Convert-Binary-to- Hexadecimal PS:我需要实现它(不使用任何内置函数) 问题答案: 如果您不必

  • 我如何将一个写为二进制的字符串转换为二进制(字节数组)? 如果我有一个字符串: 下面是当我将二进制设置为字节数组时发生的情况(字节数组返回48,这是ASCII) 我不擅长解释,所以希望上面的例子足以告诉你我想要什么。

  • 假设我有以下字符串: 如何将其转换为二进制数(0和1)?诀窍在于:我不允许使用内置方法进行转换。这必须用数学方法来完成。我不知道从哪里开始。谁能给我指出正确的方向吗? 编辑1:我看过这个问题,人们建议使用getBytes(字符串)、字符集UTF-8,我nteger.toBinaryString。我不允许使用任何这些方法进行转换。我也没听说过36垒。

  • 问题内容: 我想将十六进制字符串转换为二进制字符串。例如,十六进制2是0010。下面是代码: 但是,这仅适用于十六进制0-9;它不适用于十六进制A-F,因为它使用。谁能增强它? 问题答案: 您需要告诉Java int是十六进制的,如下所示:

  • 问题内容: 我已经阅读了有关该主题的几篇文章,但是所提供的代码(有时是片段)都没有帮助我解决转换这样的二进制字符串的简单问题: 插入文本字符串早安 我可能无法将我在stackoverflow中可用的链接中找到的代码片段放在一起。有人会这么友好地给我完整的代码吗?假设我有一个输入字符串(文本)来自我正在通过“ gettext()”访问的JTextarea,例如text = tTextarea.get