Java - 将二进制解析为长整数[重复]

2024-01-07

我有一个数字的二进制表示形式,想将其转换为 long (我有 Java 8)

public class TestLongs {
public static void main(String[] args){
    String a = Long.toBinaryString(Long.parseLong("-1")); // 1111111111111111111111111111111111111111111111111111111111111111
    System.out.println(a);
    System.out.println(Long.parseLong(a, 2));// ??? but Long.parseUnsignedLong(a, 2) works
}

}

这段代码的结果是Exception in thread "main" java.lang.NumberFormatException: For input string: "1111111111111111111111111111111111111111111111111111111111111111" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 1111111111111111111111111111111111111111111111111111111111111111 at java.lang.Long.parseLong(Long.java:592)这里有什么问题吗?为什么 Long.parseLong(a, 2) 不起作用?


Long.parseLong()不将第一个“1”字符视为符号位,因此该数字被解析为 2^64-1,这对于long. Long.parseLong()期待输入Strings 表示以“-”开头的负数。

为了Long.parseLong(str,2)回来-1,你应该传递给它一个String以“-”开头并以二进制表示形式结尾1 - i.e. Long.parseLong("-1",2).

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

Java - 将二进制解析为长整数[重复] 的相关文章

随机推荐

  • 访问 go 模块中的本地包 (go 1.11)

    我正在尝试 Go 的新模块系统 但在访问本地包时遇到问题 以下项目位于我的桌面上 gopath 之外的文件夹中 我的项目结构如下 platform platform go main go go mod platform go package
  • 如何找到Spring MVC中的所有控制器?

    为了提供一些运行时生成的 API 文档 我想迭代所有 Spring MVC 控制器 所有控制器都使用 Spring Controller 注解进行注解 目前我这样做 for final Object bean this context ge
  • 在 R 中,如何将带有 ID 的时间戳间隔数据拆分和聚合到常规槽中?

    我正在研究数据聚合的下一步上一个问题 https stackoverflow com questions 54000814 in r how do i split timestamp interval data into regular s
  • 如何将 Onnx 模型 (.onnx) 转换为 Tensorflow (.pb) 模型

    我正在尝试将 onnx 模型转换为 pb 模型 我已经编写了代码 但出现错误 tf func tf ceil AttributeError 模块 tensorflow 没有属性 ceil Code import onnx from tens
  • Google Recaptcha 的内容安全策略标头指令

    内容安全政策 https content security policy com 标头指令谷歌验证码 https developers google com recaptcha docs faq im using content secur
  • 鉴于 b 始终非零,为什么 `b ? --b : ++b` 有效,但 `--b` 无效?

    我试图使用递归将两个整数相乘 并意外地编 写了这段代码 the original version int multiply int a int b if b return 0 else return a multiply a b b b a
  • 逻辑与按位运算符 AND

    我不明白之间的区别 and and 即使我读了一些其他有关它的问题 我的代码是 f 1 x 1 f 1 x 1 Out 60 True f 1 and x 1 Out 61 True f 1 x 2 f 1 and x 2 Out 64 T
  • Mac 上 Webkit 中手势的 Javascript 事件?

    是否可以使用 Javascript 在 Mac 桌面上的 Webkit 上获取手势事件 例如 3 指向后滑动 我用谷歌搜索了几次 但没有找到任何东西 否则 我想我可以将它们从 Cocoa 传递到 WebView 我对三指滑动返回特别感兴趣
  • 使用 scilab 查找交点

    如何使用以下方法找到下图中的交点fsolve功能 from scilab 这是我到目前为止所尝试过的 function y f x y 30 0 x endfunction function y g x y zeros x k1 find
  • 为什么 Fluent NHibernate AutoMappings 在 Id 上添加下划线(例如 Entity_id)?

    您好 使用流畅的 nhibernate 自动映射 来映射这个 public virtual int Id get set snip public virtual MapMarkerIcon MapMarkerIcon get set to
  • 从 github repo 子文件夹中 npm 安装包

    当包位于子文件夹内时 是否可以从 github 安装 npm 包 例如 我们有 Microsoft BotBuilder 存储库 https github com Microsoft BotBuilder https github com
  • Angular2 完全销毁当前组件

    我尝试搜索 google 和 stackoverflow 但找不到答案 所以我的问题很简单 如何删除角度 2 4 中的当前组件 example div Remove Current Component div remove event th
  • GoogleMap InfoWindow 内的单击事件

    我想在信息窗口和信息窗口内的按钮中显示谷歌地图位置详细信息 以便单击该按钮后 将显示一个新的 QMainwindow 此时我只能显示带有关闭按钮的默认信息窗口 是否可以在信息窗口内添加可点击事件 您可以将 InfoWindow 的内容设置为
  • 在 IMAP 中创建文件夹不起作用

    我正在努力在 IMAP 中创建一个文件夹 我正在使用 gmail 到目前为止 这是我尝试过的 public boolean createFolder String folderName throws MessagingException s
  • 声明式与编程式 GraphQL

    我正在将 GraphQL 用于新的全栈项目 并且我已经研究了许多概念并开始了我的第一个项目 我的问题与使用声明式与编程式 GraphQL 架构定义有关 基本上我能看到的都在GraphQL 官方网站 http graphql org 使用声明
  • 使用 Interface Builder 检测 UIView 上的触摸

    如何检测触摸UIviewController for a UIView仅使用代码 没有 Interface Builder 我找到了 TouchBegan 方法 但它从未被调用过 我没有初始化有关此方法的任何其他内容 void touche
  • 是否可以在不登录的情况下冒充用户?

    是否可以在不提供用户名 密码的情况下模拟用户 基本上 我想得到CSIDL LOCAL APPDATA对于使用以下命令的用户 不是当前用户 ShGetFolderPath 功能 我目前拥有的只是该用户的 SID 您可以通过调用 ZwCreat
  • Nodejs - HTTP 范围支持/部分文件下载

    我正在创建一个音乐网络应用程序 用于流式传输我存储在 MongoDB GridFS 中的 MP3 我的问题 如何添加 http 范围支持 以便我可以开始流式传输音频文件 1 2 而无需等待缓冲区 我知道GridFS支持读取X字节 X字节 所
  • 为什么选择 UnityEvent 而不是本机 C# 事件?

    我的意思是 UnityEvents 比原生 C 事件慢 并且它们仍然存储对接收器的强引用 因此 我发现使用 UnityEvents 而不是原生 C 事件的唯一有效原因是它们与编辑器的集成 我是否忽略了什么 我是否忽略了什么 不 你没有忽视任
  • Java - 将二进制解析为长整数[重复]

    这个问题在这里已经有答案了 我有一个数字的二进制表示形式 想将其转换为 long 我有 Java 8 public class TestLongs public static void main String args String a L