我需要将字节转换为十六进制字符串,并在下面尝试过:String.format(“%02x”,-1);
注意,-1为二进制补码
但是我得到的回报是“ ffffffff”而不是预期的“ ff”?
因为ff
不是-1
。它是255。在您的格式中指定02
可能会pad一个带前导零的短数字,以使其最多为2位数字,但不会以错误的值截断数字。] >
如果要为数字获取一个字节的值,则可以使用&0xff
将其剪切为一个字节。
int n = -1;
String.format("%02x", n&0xff);
因为%02
表示结果的最小
格式化不截断