Java 8:为什么我无法将此二进制字符串解析为 long?

2024-01-27

长话短说,我正在用 Java 搞一些基本的遗传算法。我当时用的是long存储我的基因,但我在调试时使用二进制字符串以提高可读性。我遇到了一个奇怪的情况,我无法解析一些以 a 开头的二进制字符串1(我不知道是否总是如此,但似乎与长度为 64 个字符的字符串一致)。

我可以通过以下示例复制此内容:

String binaryString = Long.toBinaryString(Long.MIN_VALUE);
long smallestLongPossibleInJava = Long.parseLong(binaryString, 2);

这将抛出并产生以下堆栈跟踪:

Exception in thread "main" java.lang.NumberFormatException: For input string: "1000000000000000000000000000000000000000000000000000000000000000"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Long.parseLong(Long.java:592)
    at com.company.Main.main(Main.java:25)

鉴于我有一个长度为 64 个字符且格式正确的二进制字符串,为什么我无法将某些字符串解析为 long 字符串?大多数时候,我的字符串是随机生成的,但在上面的例子中这应该可以工作(参见Long.MIN_VALUE在 Java 中绝对是有效的 long)。


Quoting Long.toBinaryString(i) https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html#toBinaryString-long-Javadoc(强调我的):

返回长参数的字符串表示形式unsigned以 2 为底的整数。

并引用Long.parseLong(s, radix) https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html#parseLong-java.lang.String-int-(强调我的):

将字符串参数解析为signedlong 以第二个参数指定的基数表示。

问题来自于这样一个事实:toBinaryString返回一个无符号值,而parseLong期望有符号的值。

你应该使用Long.parseUnsignedLong(s, radix) https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html#parseUnsignedLong-java.lang.String-int-反而:

String binaryString = Long.toBinaryString(Long.MIN_VALUE);
long smallestLongPossibleInJava = Long.parseUnsignedLong(binaryString, 2);

请注意,这实际上是在toBinaryStringJava文档:

可以从返回的字符串中恢复参数的值s通过致电Long.parseUnsignedLong(s, 2).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 8:为什么我无法将此二进制字符串解析为 long? 的相关文章

  • 以编程方式将字符串宽度值插入到 sprintf() 中

    我正在尝试以编程方式将字符串宽度值插入到sprintf 格式 期望的结果是 sprintf 20s hello 1 hello 但我想插入20在同一通话中即时进行 因此它可以是任何号码 我努力了 sprintf ds 20 hello 1
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • 如何从 .NET 字典中选择前 10 名?

    我有一本字典 其排序如下 var sortedDict from entry in dd orderby entry Value descending select entry ToDictionary pair gt pair Key p
  • Jquery-ui sortable 不适用于基于 Android 或 IOS 的触摸设备

    是否有任何修复可以使 Jquery ui 可在基于 Android 或 IOS 的触摸设备上进行排序 我建议jQuery UI 触摸打孔 http touchpunch furf com 我已经在 iOS 5 和 Android 2 3 上
  • 在 Swift 3 中读取 txt 文件

    我想知道如何读取txt文件并打印出文件的特定部分 例如 test txt 将包含 杰森16男自编程 乔什 15 男性朋友艺术 所以我正在寻找一种方法来单独打印每个单词和行 比如只打印 Jason 杰森16岁了 乔什喜欢艺术 这是我到目前为止
  • 如何将 I18n 语言环境字典从 gem 添加到 Rails 应用程序

    我有一个 gem 它使用驻留在 gems 文件夹内的 lib locales yml 中的 I18n 语言环境字典 当 gem 初始化时 我想将这些字典加载到我的 Rails 应用程序中 但我不知道如何 这是我尝试过的 I18n load
  • Automapper 通过继承映射基类

    我在使用自动映射器映射我的父类时遇到一些问题 给定以下类 我创建了一个映射配置文件 映射类 public class SourceClass public int SourceProperty1 get set public int Sou
  • 函数invisible()有什么作用?

    R帮助解释invisible 作为 返回对象的暂时不可见副本的函数 我很难理解什么invisible 是用来 你能解释一下什么吗invisible 这个功能何时有用 我见过那个invisible 几乎总是在方法函数中使用print 这是一个
  • 计算用户输入的偶数 PYTHON 3

    我必须创建两个函数 一个可以通过返回 t f 来判断一个数字是奇数还是偶数 另一个将调用第一个函数 然后返回有多少个偶数 到目前为止 这是我的代码 Even 0 2 4 6 8 IsEvenInput int input Please en
  • Visual Studio 2019 - 包未正确加载

    最近 每当我打开 Visual Studio 2019 时 我就开始收到错误 该错误总是指出 包未正确加载 或 未知错误 之类的内容 此错误反复出现并影响我安装的所有版本的 Visual Studio 2015 2017 和 2019 甚至
  • 如何使用C++在Linux中获取硬件信息

    我需要获取 Win 和 nix 机器上的硬盘规格 我用了
  • 使用 Paperclip 和 AWS S3 自定义 URL

    我们使用 Paperclip 和 aws sdk gem 在 Rails 应用程序中存储和显示图像 class User lt ActiveRecord Base has attached file image storage s3 s3
  • 为什么我需要强制 git 同步我的远程存储库?

    我有一个从远程存储库克隆的本地存储库 全部在一台计算机上 我想确保我的远程存储库从本地存储库中选择了更改 所以我做了一个git push origin 我将工作目录更改为远程存储库 更改已传播到日志文件 即执行git log显示了更改 但我
  • Rails - Rake 错误:库未加载

    我读过几乎所有关于 Rails 错误的文章 寻找解决我的问题的方法 虽然我已经解决了一些问题 但我还想出了更多 我升级到Snow Leopard 并根据 Agile Development with Rails 一书安装了RVM和Rails
  • 不使用排序函数将从数组接收的字符按字母顺序排列?

    所以 基本上 我用 java 创建了一个算法 从字符串中获取字符并计算其频率 现在 我需要按字母顺序打印它 例如 频率 3 d 频率 1 l 频率 5 有什么建议么 这是我到目前为止所拥有的 int charCounts String us
  • Hammer.js 平移事件仅适用于触摸设备,不适用于桌面计算机单击+拖动

    我使用这个标准代码进行平移 捏合 1 使用 Hammer js var mc new Hammer document body mc add new Hammer Pinch threshold 0 recognizeWith mc get
  • MS Access 在两个日期之间选择?

    我已经搜索过 但所有结果都无法帮助我理解 我需要选择 18 23 岁人员的姓名 所以我的尝试是 WHERE People Birth Between Now Year 18 And Now Year 23 我做错了什么 some date
  • 是什么导致 Firefox 在通过 POST 方法提交表单后发出 GET 请求?

    当通过 POST 方法提交表单时 是什么导致 Firefox 在 POST 请求后跟随 GET 请求 GET 方法发送到与 POST 方法相同的 url 但不带请求参数 如果将表单方法更改为 GET 则会产生两个相同的 GET 请求 这是
  • 在 MYSQL Workbench 中声明语法错误

    我如何在我的中声明和设置变量MYSQL WORKBENCH在存储过程中 它给出了一个语法错误 例如unexpected Declare sym在第一行有一个十字符号 我正在使用以下代码 Declare StartDate datetime
  • 如何知道int*数组的结尾?

    我正在制作一个动态数组int 数据类型使用malloc 但问题是 如何知道数组结束呢 没有相当于 0 for int 数据类型 那么 如何做到这一点呢 将大小作为函数的输出参数传递 C 不像其他一些语言那样管理数组长度 你可以考虑一个结构
  • iOS 配置文件未安装在一台特定设备上

    我最近分发了一个用于测试的应用程序 测试团队在安装该应用程序时遇到了问题 更具体地说是与该应用程序关联的配置文件 他们使用的是 iPhone 4 iOS 5 1 1 并收到 由于未知错误而无法安装配置文件 我习惯于在尝试安装的配置文件中未注
  • Java 8:为什么我无法将此二进制字符串解析为 long?

    长话短说 我正在用 Java 搞一些基本的遗传算法 我当时用的是long存储我的基因 但我在调试时使用二进制字符串以提高可读性 我遇到了一个奇怪的情况 我无法解析一些以 a 开头的二进制字符串1 我不知道是否总是如此 但似乎与长度为 64