uint32 和 i32 在 webassembly 数据类型上有什么区别?
What's the difference between uint32 and i32 in webassembly data types?
我不明白 uint32 和 i32 之间有什么区别。定义如下:
还有,只有导师才有操作码,这里的"Type constructor"是什么意思?
所有uintN
、varuintN
和varintN
都是WebAssembly的binary format独有的概念。它们纯粹是为了以紧凑的机器可读格式对 WebAssembly 进行编码。
i32
和朋友 language types. The semantics of WebAssembly 对这些类型及其交互方式有更好的描述。基本上,它们存在于语言级别并形成可在 WebAssembly 程序中使用的基本数据类型。
他们处于两个完全不同的层次。这有点像 C int
与用于 C 源代码的 ASCII 编码。一个纯粹在语言级别,另一个纯粹在以稳定格式表示该语言时使用(对于 C:源 .c
文件;对于 WebAssembly:二进制 .wasm
文件)。
"Type constructor" 只是对应于二进制格式中特定二进制值的类型:您需要一些二进制值来对每种类型进行编码。回到我的 C 源代码示例,源字符大写 B 将在 ASCII 中编码为 0x42
。那么这里 WebAssembly i32
类型被编码为字节 0x7f
.
我不明白 uint32 和 i32 之间有什么区别。定义如下:
还有,只有导师才有操作码,这里的"Type constructor"是什么意思?
所有uintN
、varuintN
和varintN
都是WebAssembly的binary format独有的概念。它们纯粹是为了以紧凑的机器可读格式对 WebAssembly 进行编码。
i32
和朋友 language types. The semantics of WebAssembly 对这些类型及其交互方式有更好的描述。基本上,它们存在于语言级别并形成可在 WebAssembly 程序中使用的基本数据类型。
他们处于两个完全不同的层次。这有点像 C int
与用于 C 源代码的 ASCII 编码。一个纯粹在语言级别,另一个纯粹在以稳定格式表示该语言时使用(对于 C:源 .c
文件;对于 WebAssembly:二进制 .wasm
文件)。
"Type constructor" 只是对应于二进制格式中特定二进制值的类型:您需要一些二进制值来对每种类型进行编码。回到我的 C 源代码示例,源字符大写 B 将在 ASCII 中编码为 0x42
。那么这里 WebAssembly i32
类型被编码为字节 0x7f
.