在 Java 中将 short 转换为 byte[]

2022-08-31 17:44:03

如何在Java中将(2个字节)转换为字节数组,例如short

short x = 233;
byte[] ret = new byte[2];

...

它应该是这样的东西。但不确定。

((0xFF << 8) & x) >> 0;

编辑:

您也可以使用:

java.nio.ByteOrder.nativeOrder();

发现以获取本机位顺序是大还是小。此外,还取出了以下代码:java.io.Bits

  • 字节(数组/偏移量)到布尔值
  • 字节数组到字符
  • 字节数组到短
  • 字节数组到整型
  • 要浮点的字节数组
  • 字节数组到长
  • 将字节数组加倍

反之亦然。


答案 1
ret[0] = (byte)(x & 0xff);
ret[1] = (byte)((x >> 8) & 0xff);

答案 2

一个更干净,但效率低得多的解决方案是:

ByteBuffer buffer = ByteBuffer.allocate(2);
buffer.putShort(value);
return buffer.array();

当您将来必须执行更复杂的字节转换时,请记住这一点。字节缓冲器非常强大。