【发布时间】:2017-06-16 13:20:27
【问题描述】:
我正在做某事,我需要计算每个发送数据的校验和。这个校验和是所有字节的4字节和的低2字节
假设我的数据为:
Bytebuffer buffer = Bytebuffer.allocate(128); // assume i have filled buffer with some data
下面是我如何找到所有字节的总和,然后得到 2 个字节中的较低值。
byte array = buffer.array();
int checksum = 0;
for(byte b : array){
checksum += (int)b
}
checksum = (checksum & 0xff00ff) + ((checksum >> 0x08) & 0xff00ff);
short result = (short) (checksum + (checksum >> 0x10));
但是,侦听此数据的应用程序告诉我校验和错误。我的思维逻辑可能有什么问题?提前致谢
【问题讨论】:
标签: java arrays checksum bytebuffer