日期:2014-05-20  浏览次数:20832 次

怎么将byte[]里的值赋予给int[]?
两个不同的类,其中各有一个字段是对应上的。只是一个类是用byte[]形式存放,另一个用的int[]。
现在要将byte[]形式的值赋给int[],请问怎么转化?

------解决方案--------------------
public class Test {
public static void main(String[] args) throws Exception {
byte[] buf = new byte[2];
buf[0] = 1;
buf[1] = 2;

int[] array = new int[buf.length];
for(int i = 0 ;i < buf.length;i++){
String hex = Integer.toHexString(buf[i] & 0xFF);
array[i] = Integer.valueOf(hex);
}
}
}
------解决方案--------------------
0x 开头 就是16进制格式书写数字,比如 0x10
0 开头 就是8进制格式书写数字,比如 010

那么:
System.out.println(010); // 结果是 8
System.out.println(0x10); // 结果是 16

但是,0xdc,是int型数值,要赋给byte型需要进行强制类型转换,所以才有:
(byte)0xdc 
这种写法,就是强制类型转换而已。