【发布时间】:2021-10-05 13:53:27
【问题描述】:
我有一个字节数组:
byte[] b = [108, 108, -17, 65] // Arrays.toString(b)
我想将负数变成负数 +256,例如:-17 + 256 = 239 所以我有:
b = [108, 108, 239, 65]
我试过了:
ByteBuffer buffer = ByteBuffer.wrap(b);
for(int i = 0; i < 4; i++){
if (b[i] < 0){
int n = (b[i] + 256);
byte b1 = (byte) (b[i] + 256);
buffer.position(i);
buffer.put(i, (byte) (n & 0xFF));
}
}
但没有任何改变。 我会非常感谢任何建议
【问题讨论】:
-
byte是有符号的 8 位值,因此不能表示 239。 -
位级别没有区别。只需写入带符号的负字节即可。
标签: java arrays char bytebuffer