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

字符串格式十进制数转二进制的Java实现问题求助

十进制字符串转二进制字符串的问题解决

错误原因

你写的Integer.parseInt(dec, 2)是把二进制格式的字符串解析为十进制整数,而你输入的是十进制的"2",二进制里仅包含0和1两个合法字符,所以触发NumberFormatException。

正确实现代码

要完成"十进制字符串转二进制字符串"的需求,正确步骤是:

  1. 把输入的十进制字符串转成十进制整数
  2. 把十进制整数转成二进制字符串

代码如下:

Scanner input = new Scanner(System.in);
String dec = input.next();
// 先将十进制字符串转为int类型的十进制数
int decimalNum = Integer.parseInt(dec);
// 再将十进制数转为二进制字符串
String binaryStr = Integer.toBinaryString(decimalNum);
System.out.println(binaryStr);

测试输入"2"时,输出就是"10",完全符合你的需求。

额外说明

  • 如果输入的十进制数超出int范围,可以用Long.parseLong()和Long.toBinaryString()替代
  • 若需要带前缀"0b"的二进制字符串,可改用Integer.toString(decimalNum, 2),不过toBinaryString()返回的不带前缀的纯二进制字符,更贴合你的示例需求

内容的提问来源于stack exchange,提问作者Dhwani Patel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:52:06