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

Java中如何通过内置方法实现二进制字符串与Integer整数互转

Java 实现字符串形式二进制数与Integer类型整数双向转换

你不需要手动编写循环逐位计算逻辑,JDK的java.lang.Integer类已经内置了成熟的进制转换封装方法,直接调用即可完成双向转换。


1. 二进制字符串转Integer

使用Integer.parseInt(String binaryStr, int radix)方法,第二个参数固定传入2,即可按二进制规则解析字符串,自动处理前导零,完全匹配「二进制值为001时对应整数值为1」的需求。
示例代码:

String binaryStr = "001";
// 指定按2进制解析输入字符串
int decimalVal = Integer.parseInt(binaryStr, 2);
System.out.println(decimalVal); // 输出:1

注意事项:

  • 传入的二进制字符串只能包含0、1字符,否则会抛出NumberFormatException
  • 解析的二进制值不能超出int类型的取值范围(对应有效二进制位最多31位,int为32位带符号整数),否则会抛出数字格式异常

2. Integer转二进制字符串

根据输出格式要求,可选择两种实现方式:

(1)获取无前导零的二进制字符串

直接调用Integer.toBinaryString(int num)方法,返回值为整数对应的无符号二进制表示,不会自动补前导零。
示例代码:

int num = 1;
String binaryStr = Integer.toBinaryString(num);
System.out.println(binaryStr); // 输出:"1"

如果需要处理负数时得到带负号的二进制表示,可以改用Integer.toString(int num, 2)方法,正数场景下返回结果和toBinaryString完全一致。

(2)获取固定长度、带前导零的二进制字符串

如果需要得到类似"001"的固定长度带前导零结果,可以配合字符串格式化补位实现:

int num = 1;
int targetLength = 3; // 指定输出二进制串的固定长度
// 先转无符号二进制串,按长度补前导空格后替换为0
String fixedLengthBinary = String.format("%" + targetLength + "s", Integer.toBinaryString(num))
        .replace(' ', '0');
System.out.println(fixedLengthBinary); // 输出:"001"

你之前编写的手动循环实现存在明显缺陷:该实现要求把二进制值作为int类型传入,不仅会触发Java整数字面量的前缀解析规则(0开头的整数字面量默认按八进制解析)导致结果错误,二进制位数稍长时还会出现数值溢出问题,直接使用JDK内置API的简洁度和稳定性都更优。

内容的提问来源于stack exchange,提问作者Tech Buddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:36:19