任何人都知道如何在java中将大量字节(例如1000字节)转换为int/long等?将字节转换为int,反之亦然
1
A
回答
2
您可以使用一个循环
byte[] bytes =
int[] ints = new int[bytes.length];
for(int i=0;i<bytes.length;i++)
ints[i] = bytes[i];
一个1000元最多可能需要10微秒这种方式。
+2
远远少于现代PC上的。 – 2011-02-25 16:49:12
+0
是真实的,但如果10微秒听起来不是很长时间,那么它并不重要。 ;) – 2011-02-25 16:50:44
2
要将byte
转换为Java中的int
,你有两个选择:
byte val = 0xff;
int a = val; // a == -1
int b = (val & 0xff); // b == 0xff
有Java库都没法阵列从一个原始类型转换为另一种,你必须手动做。
0
谢谢Paŭlo。以下是更正的答案:
public class Main {
public static int[] convert(byte[] in) {
int bytesPerSample = 4;
int[] res = new int[in.length/bytesPerSample];
for (int i = 0; i < res.length; i++) {
int bOffset = i * bytesPerSample;
int intVal = 0;
for (int b = 0; b < bytesPerSample; b++) {
int v = in[bOffset + b];
if (b < bytesPerSample - 1) {
v &= 0xFF;
}
intVal += v << (b * 8);
}
res[i] = intVal;
}
return res;
}
public static byte[] convert(int[] in) {
int bytesPerSample = 4;
byte[] res = new byte[bytesPerSample * in.length];
for (int i = 0; i < in.length; i++) {
int bOffset = i * bytesPerSample;
int intVal = in[i];
for (int b = 0; b < bytesPerSample; b++) {
res[bOffset + b] = (byte) (intVal & 0xFF);
intVal >>= 8;
}
}
return res;
}
public static void main(String[] args) {
int[] in = {33, 1035, 8474};
byte[] b = convert(in);
int[] in2 = convert(b);
System.out.println(Arrays.toString(in2));
}
}
相关问题
- 1. 将两个字节转换为一个字节,反之亦然
- 2. 如何将pandas DataFrame转换为字节,反之亦然?
- 3. 将字节数转换为灰度和反之亦然
- 4. 将数组数组转换为字节,反之亦然C#
- 5. 将位图转换为字节,反之亦然
- 6. 将JavaUtilDate转换为NSDate,反之亦然?
- 7. 将lonlat转换为xyz,反之亦然
- 8. 将UIImage转换为NSString(反之亦然)
- 9. 将ArrayBuffer转换为Array,反之亦然
- 10. 将HTML转换为Xliff,反之亦然
- 11. 如何将int []转换为OpenCV Mat? (反之亦然)
- 12. 在python中将字母数字字符串转换为int,反之亦然
- 13. 转换为字节阵列,反之亦然
- 14. 转换图像为字节数组和反之亦然
- 15. C++将存储为char *的4个字符转换为int,反之亦然
- 16. 转换Unicode字符串,反之亦然
- 17. 将列转换成行,反之亦然
- 18. 将字母转换为数字或反之亦然
- 19. 将字符串转换为数字,反之亦然C(NOT C++)
- 20. DTO转换为实体,反之亦然
- 21. 将音频,mp3文件转换为字符串,反之亦然
- 22. 将字符串转换为位序列(反之亦然)
- 23. 如何将字符串转换为IP地址,反之亦然
- 24. 将二进制文件转换为字符串,反之亦然
- 25. 将字符串转换为键,反之亦然
- 26. 在Python中将字符串转换为类(反之亦然)
- 27. Java将字符串转换为md5,反之亦然
- 28. 将序列转换为字典,反之亦然
- 29. 将字节数组转换为Java中的整数,反之亦然
- 30. 将十进制数组转换为字节数组,反之亦然在C#
int是32位(4字节),long是64位(8字节)。你会如何处理996(或992)其他字节的数组?你真的想做什么? – 2011-02-25 16:44:21