byte转16进制String时为什么要乘上0xff
基本知识
1.byte是1byte(8位),int是4byte(32位)表示的。
2.Java中是使用了补码的形式进行数据存储的。
3.java中byte数据转化为int数据时会自动补位,如果最高位(符号位)是0,则高24位全部补0,若是1,则高24位全部补1。
原因解析
如下代码:
public static String parseByte2HexStr(byte[] buf) {
StringBuffer sb = new StringBuffer();
for (in
原创
2020-10-20 12:28:18 ·
738 阅读 ·
0 评论