(来源:http://webassembly.github.io/spec/core/binary/values.html#integers)
根据我对规范的理解,应将0x03
的值3编码为u8
。 (满足“如果n <2 7 ∧n <2 N ”的条件)
顺便说一下,下一段是这样的:
u和s编码的非终结字节生产中的附带条件N> 7限制了编码的长度。但是,在这些范围内仍然允许“尾随零”。例如,0x03和0x83 0x00都是格式正确的编码,其值3为u8。
我通过第二个方程得到0x83 0x00,但这是针对“如果n≥2 7 ∧N <7”的情况。对于值3,它不满足“ n≥2 7 ”的条件。在这种情况下,0x83 0x00
如何成为格式正确的编码?
答案 0 :(得分:1)
您可能在错误的方向上解释了规范。它指定解码,而不是编码。因此,在示例中,n不是值3,而是字节值0x83
。 3应该等于右侧公式“ 2 ^ 7 * m +(n-2 ^ 7)”。之所以如此,是因为m(第二个字节的值)将为0。