【问题标题】:Android: Convert byte array to integer array [duplicate]Android:将字节数组转换为整数数组
【发布时间】:2016-03-02 07:36:01
【问题描述】:

我正在开发一个 Android 应用程序,我在将字节数组转换为整数数组时遇到了一些困难。

我有一个字节数组以及如何将字节数组转换为整数数组。我找到了很多解决方案,但大多数都无法正常工作。将字节数组转换为整数数组的推荐方法是什么?

字节数组

byte data[] = { (byte)0x80, (byte)0x1e, (byte)0x19, (byte)0x1e, (byte)0x06,(byte)0x1f,
                (byte)0x35,(byte)0x22,(byte)0x02,(byte)0x20,(byte)0x14,(byte)0x1e,(byte)0x37,
                (byte)0x1d,(byte)0x02,(byte)0x20,(byte)0x2e,(byte)0x1f,(byte)0x15,(byte)0x1e,
                (byte)0x38,(byte)0x00,(byte)0xff,(byte)0xfb,(byte)0xf8,(byte)0x00,(byte)0x01};

谢谢。

【问题讨论】:

    标签: java android integer bytearray


    【解决方案1】:

    必须有更有效的方法来做到这一点,但下面是一个解决方案。

    Byte data[] = { (byte)0x80, (byte)0x1e, (byte)0x19, (byte)0x1e, (byte)0x06,(byte)0x1f,
                    (byte)0x35,(byte)0x22,(byte)0x02,(byte)0x20,(byte)0x14,(byte)0x1e,(byte)0x37,
                    (byte)0x1d,(byte)0x02,(byte)0x20,(byte)0x2e,(byte)0x1f,(byte)0x15,(byte)0x1e,
                    (byte)0x38,(byte)0x00,(byte)0xff,(byte)0xfb,(byte)0xf8,(byte)0x00,(byte)0x01};
    
            int[] integers = new int[data.length];
    
            for(int i = 0;i < data.length ;i++){
    
                integers[i] = data[i];
    
            }
    

    【讨论】:

      【解决方案2】:

      你试过了吗?

      byte[] arr = { 0x00, 0x01 };
      ByteBuffer wrapped = ByteBuffer.wrap(arr); // big-endian by default
      short num = wrapped.getShort(); // 1
      
      ByteBuffer dbuf = ByteBuffer.allocate(2);
      dbuf.putShort(num);
      byte[] bytes = dbuf.array(); // { 0, 1 }
      

      【讨论】:

        猜你喜欢
        • 2018-11-19
        • 1970-01-01
        • 2012-07-11
        • 2015-03-12
        • 2010-12-28
        • 1970-01-01
        相关资源
        最近更新 更多