java中基本类型转二进制或十六进制字符串最高效方式是直接调用包装类静态方法,如integer.tobinarystring()和integer.tohexstring(),底层基于位运算、无对象开销;支持负数补码、多整型类型及无符号解释;需前缀或补零时用string.format或integer.tostring();浮点型须先用floattorawintbits()等提取位模式再转换。

Java中将基本类型转为二进制或十六进制字符串,最高效的方式是直接使用包装类提供的静态方法,避免手动计算或字符串拼接,既简洁又性能好。
用Integer.toBinaryString()和Integer.toHexString()
对于int类型,JDK内置方法已高度优化,底层直接操作位运算,无对象创建开销:
-
Integer.toBinaryString(42) →
"101010" -
Integer.toHexString(255) →
"ff"(小写,不带前缀) - 支持负数:如
Integer.toBinaryString(-1)返回32位补码形式"11111111111111111111111111111111"
处理long、byte、short等其他整型
对应包装类提供同名方法,语义一致:
- Long.toBinaryString(123456789012L) → 64位二进制字符串
-
Byte.toUnsignedString((byte)0xFF, 2) → 可用
toUnsignedString(value, radix)统一处理有符号值的无符号解释(Java 8+) -
Short.toUnsignedString((short)-1, 16) → 得到
"ffff",避免符号扩展干扰
需要前缀或固定位宽?用String.format或Integer.toString()
若需"0b"、"0x"前缀或补零对齐,推荐String.format(简洁)或Integer.toString(i, radix)(更轻量):
-
String.format("0x%04x", 255) →
"0x00ff"(4位十六进制,小写) -
String.format("0b%8s", Integer.toBinaryString(5)).replace(' ', '0') → 手动补零得
"0b00000101" -
Integer.toString(255, 16).toUpperCase() →
"FF"(转大写)
浮点类型:用IEEE 754位模式表示
float/double不适用上述整型方法。应使用Float.floatToRawIntBits()或Double.doubleToRawLongBits()提取位模式,再转进制:
-
Integer.toBinaryString(Float.floatToRawIntBits(1.0f)) →
"1111111000000000000000000000000"(32位二进制) - Long.toHexString(Double.doubleToRawLongBits(Math.PI)) → 获取π的64位十六进制内存表示
- 注意:
floatToIntBits()会将NaN标准化,如需原始位用floatToRawIntBits()
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











