怎样在byte数组里面放其他的数据类型?

QiQiI01 2006-11-16 01:58:54
我现在有一个byte数组。
byte[] block = new byte[1024];
现在我需要在这个数组中的不同位置放不同的数据类型。
1)比如要在block[1020]到block[1023]这四个byte的位置上放一个int类型的数据。
2)还要在block[0]到block[63]这64个byte的位置上放长度最大为32的String。
那要怎么操作啊?我一点头绪都没有。高手指点啊。
...全文
299 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wunan320 2006-11-16
  • 打赏
  • 举报
回复
说不可以的朋友显然没有理解LZ的意思。
直接把string等类型给byte肯定是不行的,但是可以分段以byte类型放进去
wunan320 2006-11-16
  • 打赏
  • 举报
回复
楼上正解
bluesmile979 2006-11-16
  • 打赏
  • 举报
回复
0xf
bluesmile979 2006-11-16
  • 打赏
  • 举报
回复
赫赫,用位移阿。

比如:

byte[] block = new byte[1024];
int i = 12345;

block[1020] = (byte)(0f & i);
block[1021] = (byte)(i>>4);

对于string可以用string自己提供的getBytes函数。
pdvv 2006-11-16
  • 打赏
  • 举报
回复
byte数组当然只能放byte元素,楼上搞笑了这是java区。
Writer 2006-11-16
  • 打赏
  • 举报
回复
方法有好几种吧,如果用结构的话方便点,但要注意内在对齐的问题。

不用结构, 直接强制转换也行,但是麻烦点。

比如你可以这样

int *i= (int*)&block[1020];
*i= 0xA0B0C0D0;

但是如果是字符串, 就要注意越界的问题了。
zhkchi 2006-11-16
  • 打赏
  • 举报
回复
不可以
Writer 2006-11-16
  • 打赏
  • 举报
回复
汗, 没看到这是JAVA区 -_-#
malligator 2006-11-16
  • 打赏
  • 举报
回复
有答案了呀
QiQiI01 2006-11-16
  • 打赏
  • 举报
回复
有没有人指点一下啊。

62,614

社区成员

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

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