【问题标题】:java, bit operation, how to calculate the length back? [duplicate]java,位操作,如何计算返回的长度? [复制]
【发布时间】:2014-10-07 21:09:55
【问题描述】:

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

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

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

现在给定了buffer[0]buffer[1] 的值,如何返回size

【问题讨论】:

    标签: java


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:
      public int getSize(byte [] buffer)
      {
        return (buffer[0] << 8) | (buffer[1] << 0);
      }
      

      【讨论】:

      • 同时简要介绍您建议的解决方案!
      猜你喜欢
      • 2014-04-08
      • 2015-11-02
      • 2011-03-24
      • 1970-01-01
      • 2020-02-19
      • 2022-07-12
      • 2020-08-13
      • 2015-09-25
      • 1970-01-01
      相关资源
      最近更新 更多