当前位置: 首页 > 面试题库 >

将int []转换为bytes [] Java

何越
2023-03-14
问题内容

我正在尝试将int []转换为bytes。它也被转换。

我的转换代码是这样的。

public static byte[] convertIntoBytes(int[] menuIds){
    byte[] byteConverted;
    ByteBuffer byteBuffer = ByteBuffer.allocate(menuIds.length * 4);
    IntBuffer intBuffer = byteBuffer.asIntBuffer();
    intBuffer.put(menuIds);
    byteConverted = byteBuffer.array();
    for (int i = 0; i < 840; i++) {
        Log.d("Bytes sfter Insert", ""+byteConverted[i]);
    }
    return byteConverted;
}

假设我输入一个int [] = {10,11,15,41,12,8,4,23,5,17,23,36,6}现在我希望字节数组像这样{10,0
,0,0,11,0,0,0,15,0,0,0,41,0,0,0,12,0,0,0,8,0,0,0,4,0,0
,0,23,0,0,0,5,0,0,0,17,0,0,0,23,0,0,0,36,0,0,0,6,0,0,0 }

但是即将成为的字节数组是

{0,0,0,10,0,0,0,11,0,0,0,15,0,0,0,41,0,0,0,12,0,0,0,8,0
,0,0,4,0,0,0,23,0,0,0,5,0,0,0,17,0,0,0,23,0,0,0,36,0,0 ,0,6,}

实际上,我正在尝试使字节数组从第一个位置开始。


问题答案:

试试这个

...
ByteBuffer byteBuffer = ByteBuffer.allocate(menuIds.length * 4);
byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
...


 类似资料:
  • 问题内容: 如何将一个4字节的数组转换为相应的Int? 例: 输入: 输出: 我在互联网上发现的某些代码不起作用: 问题答案: 有两个问题: 在64位平台上是64位整数,您的输入数据只有32位。 在所有当前的Swift平台上使用小尾数表示法,您输入的是大尾数。 话虽如此,以下方法会起作用: 或在Swift 3中使用: 使用一些缓冲区指针魔术,您可以避免中间复制到对象(Swift 2): 有关此方法

  • 问题内容: 我正在尝试将文件保存到SQL Server数据库中,该文件将保存在其中的列是datatype 。 我目前这样做的方式是通过获取文件路径并将文件转换为字节数组。 然后,我使用插入查询和convert函数将字节插入数据库,以将转换为: 但是,在SQL Server数据库中,的值始终为 而且,无论选择哪个文件,都始终是该数字。因此,如果您能告诉我为什么会这样,以及我应该采取什么措施来防止这种

  • 问题内容: 将数组元素复制到其中的最佳方法是什么? 我需要快速执行此操作,所以最快的方法是什么? 问题答案: 利用创建 “(通过写‘到数组中。更改到返回的列表)’由指定数组支持的固定大小的列表。” 或者,解耦两个数据结构: 或更简洁:

  • 问题内容: 我正在尝试从JSON获取值并将其强制转换为int,但它不起作用,而且我不知道如何正确执行。 这是错误消息: 和代码: 问题答案: 代替 你想要一个类型断言: 您不能转换接口类型值的原因是参考的规范部分中的以下规则: 转换是形式的表达式,其中是类型,并且是可以转换为类型T的表达式。 … 在以下任何一种情况下,可以将非恒定值x转换为类型T: x可分配给T。 x的类型和T具有相同的基础类型。

  • 问题内容: 我在下面的查询中,需要转换为 架构图 我尝试了什么 但它们不起作用。请提出建议。 问题答案: 您将需要或作为数据类型,没有可以将数据强制转换/转换为以下数据的数据类型: 请参阅下面的SQL(实际上)在SQL Fiddle中 : 除了您试图转换为不正确的数据类型外,您所使用的语法也不正确。该函数使用以下列或值: 要么 您的原始查询的语法向后。

  • 问题内容: 当我运行以下查询时: 我得到结果: 有谁知道这是什么意思? 问题答案: 它是我认为的天数,因此sql-server保持此后的天数。 尝试将该数字除以大约365。您应该以年为单位返回该值(112)。自1900 + 112 = 2012