Java中只有Integer和Long包装类提供静态toBinaryString方法,用于将int或long转为无符号二进制字符串;其他包装类不支持,需先转为int再调用。

Java 中包装类本身不直接提供 toBinaryString 方法,这个方法实际定义在 Integer 和 Long 这两个包装类的**静态工具方法**中,属于类级别的转换能力,不是实例方法。
Integer.toBinaryString() 是最常用方式
它接收一个 int 类型参数(可自动拆箱),返回表示该整数无符号二进制形式的字符串(不含前导零,也不带符号位):
- 对正数:直接转为对应二进制,如
Integer.toBinaryString(10)返回"1010" - 对零:返回
"0" - 对负数:按补码的**无符号解释**处理 —— 即把整个 32 位看作正数来转。例如
Integer.toBinaryString(-1)返回"11111111111111111111111111111111"(32 个 1)
Long.toBinaryString() 处理长整型
用法类似,但针对 long 类型(64 位):
-
Long.toBinaryString(10L)→"1010" -
Long.toBinaryString(-1L)→ 64 个'1' - 注意:不能传入
Integer对象直接调用,需先拆箱或类型匹配
包装类对象如何使用?需要先拆箱
如果你有一个 Integer 或 Long 对象,必须先获取其基本类型值才能调用静态方法:
立即学习“Java免费学习笔记(深入)”;
-
Integer num = 42;String bin = Integer.toBinaryString(num); // 自动拆箱为 int -
Long bigNum = 1000L;String bin = Long.toBinaryString(bigNum); // 自动拆箱为 long - 不支持
num.toBinaryString()(因为不是实例方法,编译报错)
其他包装类没有 toBinaryString
Byte、Short、Character、Boolean 等包装类**不提供**类似方法。如需转换,可先转成 int 再调用 Integer.toBinaryString():
-
Byte b = 5;String s = Integer.toBinaryString(b & 0xFF); // 保持字节的无符号含义 -
Short s = -128;String bin = Integer.toBinaryString(s & 0xFFFF); // 补齐为16位无符号
不复杂但容易忽略:关键在于区分「静态工具方法」和「实例方法」,记住只有 Integer 和 Long 提供了标准的二进制字符串转换入口。


















