Java Short to Byte Array [重复]

Posted

技术标签:

【中文标题】Java Short to Byte Array [重复]【英文标题】:Java Short to Byte Array [duplicate] 【发布时间】:2016-10-11 11:29:51 【问题描述】:

我有一个 short val = 150; 我如何把这个short变成一个字节[2]?

我找到了一些代码示例,因为其他人也问过这些问题,但没有一个对我有用..请帮助我

【问题讨论】:

你应该发布你写的所有东西来试试这个,并具体解释每一个都不起作用的地方。 所以我想我们必须重复所有那些对你不起作用的例子? 【参考方案1】:

试试这个。

short val = 150;
byte[] result = ByteBuffer.allocate(2).putShort(val).array();

【讨论】:

【参考方案2】:

你可以这样做:

short val = 150;
byte []array = new byte[2]
array[0] = (byte)(val & 0xff);
array[1] = (byte)((val >> 8) & 0xff);

您将最不重要的字节放入数组[0]。在数组[1] 中最重要的字节。

更多操作的含义可以阅读here

【讨论】:

感谢您的快速回答,如果我尝试这样做,我会得到以下输出:array[0] = -106 array[1] = 0 这对我没有意义 为什么不呢?有什么问题? 你能解释一下每一行代码吗?我真的不明白..谢谢你 在数组[0] 中将有位的最低有效部分。 (最低有效字节)。在数组[1] 中最重要。显然,如果您愿意,您可以反转。 0xff 表示十六进制的 FF。有关您在此处阅读的含义的更多信息:oscarliang.com/… 非常感谢。它一直对我有用,我只是对字节数组中有负数这一事实感到不舒服。谢谢!

以上是关于Java Short to Byte Array [重复]的主要内容,如果未能解决你的问题,请参考以下文章

java 详细介绍short,byte,char三种类型,我分不清

java short 数组转换 byte数组

java short 数组转换 byte

为啥java虚拟机jvm要把byte和short的运算都转为int

java int转short

Java byte(short)溢出,口算方法