怎么将byte[]里的值赋予给int[]?

sheva_goal 2012-07-21 10:51:01
两个不同的类,其中各有一个字段是对应上的。只是一个类是用byte[]形式存放,另一个用的int[]。
现在要将byte[]形式的值赋给int[],请问怎么转化?
...全文
333 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
brightyq 2012-07-21
  • 打赏
  • 举报
回复
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);
}
}
}
MiceRice 2012-07-21
  • 打赏
  • 举报
回复
直接循环遍历就完毕了啊:
byte[] bs = { (byte) 0xdc, (byte) 0x07 };
int[] is = new int[bs.length];
for (int i = 0; i < bs.length; i++) {
is[i] = bs[i];
}

不过要注意的是,默认都是带符号的,也就是说 0xdc 是 负数。
MiceRice 2012-07-21
  • 打赏
  • 举报
回复
0x 开头 就是16进制格式书写数字,比如 0x10
0 开头 就是8进制格式书写数字,比如 010

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

但是,0xdc,是int型数值,要赋给byte型需要进行强制类型转换,所以才有:
(byte)0xdc
这种写法,就是强制类型转换而已。
sheva_goal 2012-07-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

直接循环遍历就完毕了啊:
byte[] bs = { (byte) 0xdc, (byte) 0x07 };
int[] is = new int[bs.length];
for (int i = 0; i < bs.length; i++) {
is[i] = bs[i];
}

不过要注意的是,默认都是带符号的,也就是说 0xdc 是 负数。
[/Quote]
对这(byte) 0xdc, (byte) 0x07 不是很懂 、麻烦讲解下?
zhangyong369 2012-07-21
  • 打赏
  • 举报
回复
byte[] bs = { (byte) 0xdc, (byte) 0x07 };
int[] is = new int[bs.length];
for (int i = 0; i < bs.length; i++) {
is[i] = bs[i];
}

就OK乐

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧