java,位运算,如何计算回的长度?

java,位运算,如何计算回的长度?,java,Java,在java程序中,人们将数据存储在字节数组中,前两个字节用于存储数据的长度 byte[] buffer = new byte[100000]; int size = data.getBytes().length; buffer[0] = (byte)((size >> 8 ) & 0xff); buffer[1] = (byte)(size & 0xff); 现在,给定缓冲区[0]和缓冲区[1]的值,如何恢复大小?很久以前,DataInputStream/Dat

在java程序中,人们将数据存储在字节数组中,前两个字节用于存储数据的长度

byte[] buffer = new byte[100000];
int size = data.getBytes().length;

buffer[0] = (byte)((size >> 8 ) &  0xff);
buffer[1] = (byte)(size & 0xff);

现在,给定缓冲区[0]和缓冲区[1]的值,如何恢复大小?

很久以前,DataInputStream/DataOutputStream java类中描述了所有这些内容。更具体地说,在您的任务中,它将是:

return (short)(((int)(buffer[0] & 0xff) << 8) + ((int)(buffer[1] & 0xff) << 0));

另外,请简要介绍您建议的解决方案!
public int getSize(byte [] buffer)
{
  return (buffer[0] << 8) | (buffer[1] << 0);
}