【问题标题】:How to Convert Int Array to a single long value如何将 Int 数组转换为单个 long 值
【发布时间】:2019-01-16 10:25:21
【问题描述】:

我有一个整数数组

int[]values = {45,89,3000,719,1,90,167,18920};

如何在 java 中将上述内容转换为单个 longvalue。

所以,我知道在使用字节数组时,我们有以下内容

byte [] bytes = { 0, 6, 36, -84, 113, 125, -118, -47 };

我可以得到上面字节的等效长值

 long wrapped = ByteBuffer.wrap(bytes).getLong();
 System.out.println(""+wrapped);

1729172917291729

那么,是否可以使用整数数组而不是字节数组来实现相同的效果? 谢谢大家。

【问题讨论】:

  • 和...应该是什么值?
  • 您是否期望该数组的所有元素连接的长值?
  • 就像你将一个字节数组转换为一个长整数一样,我想要类似的东西
  • 不要试图“简单地”输入一些东西,向我们展示您对特定输入的期望输出。
  • 在您的字节示例中,您提供了一个 8 字节的数组,可以压缩为一个长字节。您可以将 8 个字节压缩为 long,因为 long 是 8 个字节。但是你想用 int 做什么是不可能的,因为 int 是 4 个字节。您不能将 8 个 int 压缩为 long,最多可以将 2 个 int 压缩为 long。

标签: java arrays


【解决方案1】:

不可能

long 值存储 64 位。这意味着它只能容纳两个int(即32位)。

【讨论】:

  • 是的,你在某种程度上是对的,但你以前在 java 中使用过 IntBuffers 吗?有没有办法将 IntBuffer 转换为 LongBuffer?其本质是将 int 数组压缩为不同的 long 值,反之亦然
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-18
  • 2015-06-04
  • 1970-01-01
  • 2021-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多