0

我有一个将 int 转换为 byte[] 的方法

private static byte[] intToBytes(int i)
{

 byte[] integerBs = new byte[MAX_INT_LEN];
 integerBs[0] = (byte) ((i >>> 24) & 0xFF);
 integerBs[1] = (byte) ((i >>> 16) & 0xFF);
 integerBs[2] = (byte) ((i >>> 8) & 0xFF);
 integerBs[3] = (byte) (i & 0xFF);
 return integerBs;
}

假设我尝试将整数 4 转换为位:

byte[] lenBs = intToBytes(4);
int a=(int)lenBs[0];
System.out.println("result:"+a);

MAX_INT_LENGTH 的值为 4

对于我作为该方法的参数输入的每个 int,我得到了结果:0。请告诉我哪里出错了。谢谢。

4

1 回答 1

2

lenBs[0] 刚刚得到:

integerBs[0] = (byte) ((i >>> 24) & 0xFF);

...在 i = 4 的情况下,integerBs[0] == 0。

于 2013-09-02T13:26:24.553 回答