【发布时间】:2013-01-27 10:55:38
【问题描述】:
我有一个字节数组,其中数组中的数据实际上是短数据。字节以小端序排列:
3、1、-48、0、-15、0、36、1
当转换为短值时会导致:
259、208、241、292
Java 中有没有一种简单的方法可以将字节值转换为相应的短值?我可以编写一个循环,只获取每个高字节并将其移动 8 位,然后将其与低字节进行 OR,但这会影响性能。
【问题讨论】:
-
你已经给出了 8 个字节,然后是 4 个 longs... 而 8 个字节应该只产生一个 single long 值。此外,您还没有说出您的预期。基本上你的问题目前还不清楚......
-
不,不清楚。您拥有来自字节数组的数据及其转换为的内容。再明显不过了。
-
是的,可以。因为听起来您实际上转换为
short,而不是long...而且您还没有说出您期望的结果。不要让问题变得更清楚 - 但请记住,您是寻求帮助的人,您的问题越好,帮助可能就越好。 -
@AndroidDev 请仔细阅读 Jon 的消息。他真的知道自己在说什么。
-
@AndroidDev:让我们看看到底有什么不清楚的地方:1) 为什么你期望 8 个
byte值中有 4 个long值,而long有 8 个字节的数据; 2) 您使用什么代码来获取 incorrect 值; 3)您期望如何处理负数; 4)为什么你对试图帮助你的人无礼。
标签: java arrays byte endianness