3
A
回答
0
你可以编码一个循环,你把“long”除以256,取其余的,然后你有“最低有效字节”...... (取决于你是想要little-endian还是big-endian你可以向前或向后循环)
long l = (3* 256 * 256 * 256 + 1 * 256 *256 + 4 * 256 + 8);
private byte[] convertLongToByteArray(long l) {
byte[] b = new byte[4];
if(java.nio.ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN){
for (int i=0; i<4; i++) {
b[i] = (byte)(l % 256) ;
l = l/256;
}
}else{
for (int i=3; i>=0; i--) {
b[i] = (byte)(l % 256) ;
l = l/256;
}
}
return b;
}
1
8
要读取4个字节为一个无符号的32位值,假设它是小端,以最简单的做法是使用的ByteBuffer
byte[] bytes = { 1,2,3,4 };
long l = ByteBuffer.wrap(bytes)
.order(ByteOrder.LITTLE_ENDIAN).getInt() & 0xFFFFFFFFL;
虽然l
可以是一个符号的64位值它将只能在0和2之间^^ 32-1,这是一个无符号的32位值的范围。
相关问题
- 1. Java - 将字节[]转换为字符串
- 2. 转换为C字节数组长长
- 3. Java - 将int转换为4字节的Byte数组?
- 4. 如何在Java中将float从float转换为4个字节?
- 5. 将4个字节的字节转换为一个int
- 6. Java:将字节转换为整数
- 7. 将字节数组转换为.wav java
- 8. Java将int隐式转换为字节
- 9. 将int转换为java中的字节
- 10. char转换为字节? (JAVA)
- 11. 将int写入字节,长度为4
- 12. 将Java字符串转换为16字节的字节数组
- 13. 将数字转换为4字节的字符串
- 14. 将字节转换为字节[]
- 15. 如何将字节[]转换为字节[]
- 16. 转换为字节[特定长度
- 17. 转换字节[]为长黑莓
- 18. 将char转换为字节
- 19. 将字节[]转换为SAFEARRAY
- 20. 将字节[]转换为Int8
- 21. 将NSData转换为字节
- 22. 将UUID转换为字节
- 23. 将pandas.DataFrame转换为字节
- 24. 将NSString转换为字节
- 25. 将FloatBuffer []转换为字节[]
- 26. 将PDF转换为字节
- 27. 将字节转换为位
- 28. 将BitmapImage转换为字节[]
- 29. 将字节转换为SByte
- 30. 将HttpContent转换为字节[]
你不能因为咬了一口。为什么不使用多久?如果这是为了优化,那么你不应该打扰。 –
'int'在Java中是32位的,这看起来比64位的'long'更合适。另外,**你是如何将数据从C传递给Java的? –
如果你在C语言中对'byte [4]''进行'long unsigned int'转换,并将它传递给Java(可能是逗号分隔的整数列表),那么看起来似乎更合适。 –