我需要类似于Python项目的Python结构模块。我想将整数(也可能是浮点数和双精度数)打包成字节数组。此外,我想选择字节序,并且通常可以完全控制如何完成,因为我需要将这些数据发送到某些硬件,这些硬件将运行另一种语言的代码。
答案 0 :(得分:4)
答案 1 :(得分:3)
对于int var,您可以获取int的每个字节并放入数组。像那样:
int info = 123456789;
byte [] data = new byte[100];
data[0] = (byte) ((info>>24) & 0xff);
data[1] = (byte) ((info>>16) & 0xff);
data[2] = (byte) ((info>>8) & 0xff);
data[3] = (byte) ((info) & 0xff);
int out = 0;
out = ((data[0]&0xff)<<24) | ((data[1]&0xff)<<16) | ((data[2]&0xff)<<8) | data[3]&0xff);
System.out.println("info " + info);
System.out.println("out " + out);
对于浮动或双倍,你不能直接这样做。必须将var转换为int。可以使用方法Float.floatToRawIntBits()或Double.doubleToRawLongBits()完成。