Java中可用Integer.toBinaryString()和toHexString()直接转换整数为二进制或十六进制字符串,前者返回无前缀、负数按32位补码表示的二进制串,后者返回小写无前缀十六进制串;Long、Short等包装类也提供对应方法,推荐用Integer.toString(n, radix)实现2–36进制灵活转换。

Java 中可以通过整数包装类(如 Integer)提供的静态方法,直接将 int 值转为二进制或十六进制字符串,无需手动计算。
使用 Integer.toBinaryString() 转二进制
该方法接收一个 int 参数,返回不带前缀(如 "0b")的纯二进制字符串。注意:对负数按补码形式处理,但返回的是无符号位表示的完整 32 位二进制串(不省略高位 1)。
-
Integer.toBinaryString(10)→"1010" -
Integer.toBinaryString(-1)→"11111111111111111111111111111111"(32 个 1) - 若需固定位宽(如 8 位),可自行补前导零:
String.format("%8s", Integer.toBinaryString(n)).replace(' ', '0')
使用 Integer.toHexString() 转十六进制
类似地,该方法返回小写、无前缀(如 "0x")的十六进制字符串,同样支持负数(按补码解释)。
-
Integer.toHexString(255)→"ff" -
Integer.toHexString(-1)→"ffffffff" - 如需大写,可链式调用
.toUpperCase();如需前缀,手动拼接:"0x" + Integer.toHexString(n)
其他整数类型也适用对应包装类
Long、Short、Byte 类也提供同名方法(如 Long.toBinaryString()),但参数类型需匹配。传入 long 时务必用 Long 类,否则可能因自动拆箱/截断导致错误。
立即学习“Java免费学习笔记(深入)”;
-
Long.toBinaryString(1000L)→"1111101000" -
Byte.toOctalString((byte) 64)→ 注意:Byte没有toBinaryString,但可用Integer.toBinaryString(b & 0xFF)安全转换(避免符号扩展)
统一方式:使用 String.format() 或 Integer.toString()
更灵活的方式是用通用方法:
-
Integer.toString(255, 2)→"11111111"(第二个参数为进制,2 表示二进制) -
Integer.toString(255, 16)→"ff" -
String.format("%x", 255)→"ff";String.format("%s", Integer.toBinaryString(255))等价于直接调用 -
Integer.toString()支持 2–36 进制,且对负数返回带负号的字符串(如Integer.toString(-10, 2)→"-1010"),行为与toBinaryString()不同


















