You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现整数转32位翻转二进制转无符号整数时触发NumberFormatException

问题排查指导:整数转32位二进制翻转后解析异常

核心需求

将整数转换为32位二进制格式,翻转每一位后转换为无符号整数,当前在将二进制字符串解析为long时抛出NumberFormatException,需自行排查问题。

排查步骤引导

  • 先打印解析前的tempBits变量内容,确认它是严格的32位0/1字符串,没有混入其他字符。
  • 回忆Long.parseLong(String s)的默认行为:该方法默认将输入字符串视为十进制数字解析。你当前传入的是32位二进制字符串,直接解析会把这串0/1当成超大十进制数,远超long的取值范围,这是异常的核心诱因。思考一下,Java提供了哪个重载方法可以指定解析的基数(比如二进制的基数是2)?
  • 检查二进制转换的初始步骤:Long.toBinaryString(9)已经直接返回了目标数的二进制字符串,有没有必要先转成long再转回String?这一步会不会在其他场景下(比如更大的数)引入溢出问题?
  • 验证位翻转逻辑的正确性:打印翻转前后的字符串,对比每一位是否正确实现了0→1、1→0的转换,确保翻转操作没有破坏字符串的格式。

内容的提问来源于stack exchange,提问作者loic yatou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 11:00:55