Java中int数据类型转byte类型,int数为-129,答案尽可能详细
2个回答
展开全部
int 是4字节的, 用补码存储
-129: 原码: 1000 0000, 0000 0000, 0000 0000, 1000 0001
反码: 1111 1111, 1111 1111, 1111 1111, 0111 1110
补码: 1111 1111, 1111 1111, 1111 1111, 0111 1111
转成byte后, 高的3个字节就被舍弃了, 剩最低的一个字节
也就是 0111 1111
十六进制为 7f
无符号10进制为 127
有符号10进制也是 127
-129: 原码: 1000 0000, 0000 0000, 0000 0000, 1000 0001
反码: 1111 1111, 1111 1111, 1111 1111, 0111 1110
补码: 1111 1111, 1111 1111, 1111 1111, 0111 1111
转成byte后, 高的3个字节就被舍弃了, 剩最低的一个字节
也就是 0111 1111
十六进制为 7f
无符号10进制为 127
有符号10进制也是 127
展开全部
public static byte[] toByteArray(int iSource, int iArrayLen) {
byte[] bLocalArr = new byte[iArrayLen];
for (int i = 0; (i < 4) && (i < iArrayLen); i++) {
bLocalArr[i] = (byte) (iSource >> 8 * i & 0xFF);
}
return bLocalArr;
}
byte[] bLocalArr = new byte[iArrayLen];
for (int i = 0; (i < 4) && (i < iArrayLen); i++) {
bLocalArr[i] = (byte) (iSource >> 8 * i & 0xFF);
}
return bLocalArr;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询