【发布时间】:2021-10-26 12:03:34
【问题描述】:
我有一个 ByteArray 类型的变量:
val byteArray: ByteArray?
我目前正在访问它的第一个字节,索引如下:byteArray[0]。我希望能够得到这个字节数组的前两个字节。我应该获取字节 0 和 1 然后追加,还是可以以某种方式执行 byteArray[0:1]?我对 Java 和 Kotlin 非常陌生,不胜感激。
我需要能够获取前两个字节,这样我才能获取 0 到 16 位并将其转换为整数。 我用它来将字节转换为二进制字符串:
`String.format("%8s", Integer.toBinaryString(inByte & 0xFF)).replace(' ', '0');`
【问题讨论】:
-
不清楚你想做什么,或者最终结果是什么。您在寻找
short(16 位整数)值吗?或者别的什么,如果是这样呢?在字节的上下文中,“附加”这个词对我来说没有意义。 -
为什么获取
get(0)、get(1)是个问题?我可以在这里提供答案,但为什么要提出问题而不是简单地前进呢?去吧,做你的工作,然后优化。如果您在这一点上 - 我的意思是优化 - 请提供更多代码... -
我很抱歉。更清楚一点:我想获取该字节数组中的前两个字节,因此我可以访问前 16 位并将其转换为整数。
-
您的第一个建议,但我建议您阅读 Java 中数组的功能
-
@MichałZaborowski 我应该添加更多上下文。我需要位 0-16 将其转换为整数。如果我先得到字节 0,然后得到字节 1,而不将它们连接起来,我不知道该怎么做。我想知道是否有直接的方法可以一次获取字节 0 到 1。