Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java/Android-如何将int数组转换为最小字节数组?_Java_Android_Arrays_Type Conversion_Nfc - Fatal编程技术网

Java/Android-如何将int数组转换为最小字节数组?

Java/Android-如何将int数组转换为最小字节数组?,java,android,arrays,type-conversion,nfc,Java,Android,Arrays,Type Conversion,Nfc,我需要像这样转换一个int数组 int[] myInts = { 99999, 9999, 99999, 1, 1234567890, 24385933, 99 }; …尽可能高效地存储到字节[]中,以便将其保存在NFC标记上 我已经从中看到,我尝试了这两个答案(和),但它们创建的字节数组的长度都是28 不幸的是,这对我没有好处,因为我需要创建一个最大长度为16的字节[](因为必须保存此数据的标签是MIFARE Ultralight EV

我需要像这样转换一个int数组

int[] myInts = {
    99999,
    9999,
    99999,
    1,
    1234567890,
    24385933,
    99
};
…尽可能高效地存储到
字节[]
中,以便将其保存在NFC标记上

我已经从中看到,我尝试了这两个答案(和),但它们创建的字节数组的长度都是28

不幸的是,这对我没有好处,因为我需要创建一个最大长度为16的字节[](因为必须保存此数据的标签是MIFARE Ultralight EV1)


为了将
myInts
转换为
字节[16]
,我是否可以尝试其他方法?

抱歉。我在我的问题中得到了一些错误的信息,因为根据,标签可以容纳48字节的用户数据-这是个好消息。(NXP的示例应用程序硬编码为只使用16字节,这让我有点误入歧途。)


无论如何,感谢您的宝贵意见。:-)

每个整数是4个字节。7 x 4=28,唯一的方法是如果您知道其中的一些值是,那么您对数组的值有任何已知的约束吗?例如,如果您知道数组中的某些元素在-128到127范围内,则可以将它们存储在单个字节中,而不是存储在4个字节中。从数学上讲,您甚至希望这样做的唯一方法是,您可以证明需要压缩的数组的可能性小于2^(8*16)=2^128。如果这是不可能的,那么你就100%走运了,不管你有多聪明,你都不可能做那么多的压缩。如果你写一系列的代码,你可以得到19个字节。但是它也可以大于7x4字节。一个简单的int翻译使用,因为这种类型的编码对于接近0的正数来说很小,但在最坏的情况下,每个int需要5字节。如果有人想提交原始问题的正确答案,我将把这个问题保留为未解决。