了解解析二进制协议(数据类型之间的额外字节)

时间:2018-08-08 10:17:05

标签: java arrays parsing binary protocols

我需要某人的帮助。我有一个二进制协议,我想解析它(字节数组)。一切都很好,但是有时数据类型之间会有多余的字节。而且我必须跳过这些字节才能正确解析。谁能解释这些多余字节的原因?

我有这样的字节数组:

file.createDir(file.externalRootDirectory, 'silapathigaram', true).then((val) => {
      console.log("Created");
    }).catch(e => {
      console.log("error is ",e);
    });

我先解析4个字节(它的3-整数),然后跳过4个字节(它是什么????),然后解析接下来的8个字节(其10000.0-整数)。因此,出于什么原因,我需要跳过这4个字节以进行正确的解析?

1 个答案:

答案 0 :(得分:0)

我会说这是对齐的填充。我的猜测是该协议假定初始缓冲区对齐为8个字节。第一个整数消耗前4个字节,然后它需要跳过其他4个字节,以允许8个字节与您的浮点数对齐(8个字节,我想是两倍)。