long值到byte [] - Java

时间:2013-05-12 12:23:32

标签: java casting byte bytearray long-integer

我有一个十进制数,我会将它转换为byte(小端符号)的数组缓冲区。

我试试这个,但我不确定它是否有效:

ByteBuffer a = ByteBuffer.allocate(4);
      a.putInt( (int) number);
      return a.array();

如果数字是125,我已退回:

[0,0,0,128];

这是对的吗?我认为正确的转换是:

[0,0,0,10000000]

如何使用Java?

提前致谢

1 个答案:

答案 0 :(得分:0)

1)来自ByteBuffer API

The initial order of a byte buffer is always BIG_ENDIAN. 

因此,您必须首先将字节缓冲区顺序更改为小端

2)Java中只有一个十进制数表示,它是BigDecimal,不能将它强制转换为int。因此,这不起作用

 a.putInt( (int) number);