在webassembly数据类型中uint32和i32之间的区别是什么?

时间:2017-06-22 01:46:36

标签: web computer-science webassembly

我不明白uint32和i32有什么区别。定义如下:

uint32

i32

此外,只有教师应该有操作码,"类型构造函数" 在这里是什么意思?

1 个答案:

答案 0 :(得分:2)

所有uintNvaruintNvarintN都是WebAssembly binary format独有的概念。他们纯粹以紧凑的机器可读格式对WebAssembly进行编码。

i32和朋友language typessemantics of WebAssembly可以更好地描述这些类型以及它们如何相互作用。基本上,它们存在于语言级别,并形成可在WebAssembly程序中使用的基本数据类型。

他们处于两个完全不同的水平。它有点像C int与用于C源代码的ASCII编码。纯粹在语言层面,而另一个纯粹用于以稳定格式表示该语言(对于C:源.c文件;对于WebAssembly:二进制.wasm文件)。

"类型构造函数"只是与二进制格式中的特定二进制值对应的类型:您需要一些二进制值,您可以使用它来编码每种类型。回到我的C源示例,源字符大写B将在ASCII中编码为0x42。那么WebAssembly i32类型被编码为字节0x7f