提问人:sergii.gudym 提问时间:7/21/2023 最后编辑:sergii.gudym 更新时间:7/21/2023 访问量:36
如何从 *.dbl/*.mt4 获取值
how to get values from *.dbl/*.mt4
问:
我从示波器接收了 64 位双精度 (.dbl) 或“测量数据”(.mt4) 格式的数据。如何解析它(最好是 Java 或 Kotlin)或在哪里可以找到这种格式的文档?
我尝试使用DataInputStream.readDouble,但结果很奇怪
C5 12 52 9B EC 3F 12 C0 17 29 E9 87 4E 71 12 C0 6A 3F 80 74 B0 A2 12 C0 B8 39 8E 9E B1 37 12 C0 17 29 E9 87 4E 71 12 C0 C5 12 52 9B EC 3F 12 C0 4E 8D F8 7A 3A 92 12 C0 AA 60 CA A1
答:
3赞
g00se
7/21/2023
#1
你可以用这个来阅读它。这些值符合您的期望:
import java.nio.ByteBuffer;
import static java.nio.ByteOrder.*;
import java.nio.file.Path;
import java.nio.file.Files;
import java.io.InputStream;
public class Doubler {
public static void main(String[] args) throws Exception {
int count = -1;
byte[] buff = new byte[8];
ByteBuffer bb = ByteBuffer.allocate(8).order(LITTLE_ENDIAN);
try (InputStream in = Files.newInputStream(Path.of(args[0]))) {
while ((count = in.read(buff)) > -1) {
bb.put(buff);
bb.rewind();
System.out.printf("%.2f%n", bb.getDouble());
bb.rewind();
}
}
}
}
评论
-4.56, -4.61, -4.66, -4.55, -4.61, -4.56, -4.64, -4.55
;)