关于byte[]通过Integer.toHexString(byte[] & 0xFF)的转化

本文探讨了在Java中将byte数组转化为十六进制字符串时,为何使用`b[i] & 0xFF`与运算的必要性。由于byte是8位,int是32位,不进行此操作会导致补码转换错误。通过与0xFF相与,可以确保只保留低8位,避免32位补码带来的误差,确保转化正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先看一下遇到的代码:

public static String parseByte2HexStr(byte buf[]) {

StringBuffer sbf = new StringBuffer();
for (int i = 0; i < buf.length; i++) {
String hex = Integer.toHexString(buf[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
sb.append(hex.toUpperCase());
}
return sb.toString();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值