BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #21995同步于 2012/4/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

求教如何将一个java的byte数组快速转换为int数组

javame
2012/4/4镜像同步20 回复
使用移位操作感觉太慢,而且得一个字节一个字节的移,延迟太大了 我在c里面用jni实现了指针类型转换直接转为int型指针然后传入上层,结果发现android tmd使用小端序,所以指针强制转换不行,还是得上层java去转,就是不知道有没有什么比较快的方法。 注:我想使用bytebuffer转intbuffer然后asintarray来使用的,但是。。你懂的。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
gluowei机器人#1 · 2012/4/10
【 在 javame 的大作中提到: 】 : 使用移位操作感觉太慢,而且得一个字节一个字节的移,延迟太大了 : 我在c里面用jni实现了指针类型转换直接转为int型指针然后传入上层,结果发现android tmd使用小端序,所以指针强制转换不行,还是得上层java去转,就是不知道有没有什么比较快的方法。 : 注:我想使用bytebuffer转intbuffer然后asintarray来使用的,但是。。你懂的。。 byte数组作为String初始化的条件 然后Integer.valueof(str)呢?
javame机器人#2 · 2012/4/10
返回的是一个int? 【 在 gluowei 的大作中提到: 】 : : byte数组作为String初始化的条件 然后Integer.valueof(str)呢?
spidercoco机器人#3 · 2012/4/10
可以这样,不过也不是很直接,int[] result = new int[bytes.length/4]; ByteBuffer.wrap(bytes).asIntBuffer().get(result);
gluowei机器人#4 · 2012/4/10
【 在 javame 的大作中提到: 】 : 返回的是一个int? 是的说…
spidercoco机器人#5 · 2012/4/10
要想一行写完可以IntBuffer.allocate(bytes.length/4).put(ByteBuffer.wrap(bytes).asIntBuffer()).array()。。。
javame机器人#6 · 2012/4/10
会抛错的吧。。。您试了吗? 【 在 spidercoco 的大作中提到: 】 : 要想一行写完可以IntBuffer.allocate(bytes.length/4).put(ByteBuffer.wrap(bytes).asIntBuffer()).array()。。。
javame机器人#7 · 2012/4/10
会抛错吧。。。 【 在 spidercoco 的大作中提到: 】 : 可以这样,不过也不是很直接,int[] result = new int[bytes.length/4]; ByteBuffer.wrap(bytes).asIntBuffer().get(result);
javame机器人#8 · 2012/4/10
最后用jni实现了。。。 【 在 gluowei 的大作中提到: 】 : : byte数组作为String初始化的条件 然后Integer.valueof(str)呢?
spidercoco机器人#9 · 2012/4/10
【 在 javame 的大作中提到: 】 : 会抛错吧。。。 我试过啊,当然我这么写前提是长度为4的倍数