integer.tohexstring 是 java 中将 int 转为小写十六进制字符串的方法,不带前缀、不补零、负数按无符号 32 位处理;需补零或大写时应使用 string.format 或 touppercase。

Integer.toHexString 是 Java 中将 int 类型的十进制整数 转换为对应十六进制小写字符串的便捷方法,它不带前缀(如 "0x"),也不处理负数的补码显示(而是按无符号 int 解释)。
基本用法:直接传入 int 值
该方法接收一个 int 参数,返回其十六进制表示(不含前导零,全小写):
-
Integer.toHexString(10)→"a" -
Integer.toHexString(255)→"ff" -
Integer.toHexString(0)→"0" -
Integer.toHexString(16)→"10"
注意负数的处理方式
传入负数时,方法将其视为 32 位无符号整数(即按补码二进制解释后转十六进制),结果是 8 位小写十六进制串:
-
Integer.toHexString(-1)→"ffffffff"(因为 -1 的补码是 32 个 1) -
Integer.toHexString(-16)→"fffffff0"
若你只想获取绝对值的十六进制,需先取正:Integer.toHexString(Math.abs(-255)) → "ff"(但注意 Math.abs(Integer.MIN_VALUE) 会溢出,慎用)。
补零与大小写控制
该方法本身不补零、不支持大写。如需固定长度(如 2 位、4 位、8 位)或大写格式,需额外处理:
- 补零到 2 位:
String.format("%02x", 10)→"0a" - 补零到 4 位大写:
String.format("%04X", 255)→"00FF" - 仅转大写:
Integer.toHexString(255).toUpperCase()→"FF"
和其它转换方式的区别
对比常见替代方式:
-
Integer.toString(n, 16)功能与toHexString完全一致,是更通用的进制转换接口 -
String.format("%x", n)更灵活(可补零、对齐、大小写),但有格式化开销 -
new BigInteger(n + "").toString(16)支持任意精度,但开销大,一般不用在 int 场景
日常简单转换推荐直接用 Integer.toHexString;需要格式控制就用 String.format。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











