什么';uint32和i32在webassembly数据类型上有什么区别?

什么';uint32和i32在webassembly数据类型上有什么区别?,web,computer-science,webassembly,Web,Computer Science,Webassembly,我不明白uint32和i32之间的区别是什么。定义如下: 此外,只有讲师才应该有操作码,这里的“类型构造函数”是什么意思?所有的uintN、varuintN和varintN都是WebAssembly独有的概念。它们纯粹是为了以紧凑的机器可读格式对WebAssembly进行编码 i32和朋友都是。用户可以更好地描述这些类型及其交互方式。基本上,它们存在于语言级别,并形成可在WebAssembly程序中使用的基本数据类型 他们处于两个完全不同的层次。这有点像Cint与C源代码使用的ASCII编码

我不明白uint32和i32之间的区别是什么。定义如下:


此外,只有讲师才应该有操作码,这里的“类型构造函数”是什么意思?

所有的
uintN
varuintN
varintN
都是WebAssembly独有的概念。它们纯粹是为了以紧凑的机器可读格式对WebAssembly进行编码

i32
和朋友都是。用户可以更好地描述这些类型及其交互方式。基本上,它们存在于语言级别,并形成可在WebAssembly程序中使用的基本数据类型

他们处于两个完全不同的层次。这有点像C
int
与C源代码使用的ASCII编码。一个是纯语言级别的,另一个是纯在以稳定格式表示该语言时使用的(对于C:source
.C
文件;对于WebAssembly:binary
.wasm
文件)


“类型构造函数”只是对应于二进制格式中特定二进制值的类型:您需要一些二进制值来编码每个类型。回到我的C源代码示例,源字符大写B将在ASCII中编码为
0x42
。在这里,一个WebAssembly
i32
类型被编码为byte
0x7f

,根据我的理解,如果我在一个wasm二进制文件中找到一个byte'0x7f',这意味着这个地方一定有某种整数值?谢谢!我想我明白这一点不,如果您发现
0x7f
可能意味着很多事情,因为WebAssembly格式是可变长度编码
0x7f
根据上下文的不同,可以表示不同的内容。这与x86中的情况相同,在x86中,每个字节可以表示不同的内容,具体取决于解码的指令。