i32: Wasm Werttyp
Der i32 Werttyp hält einen 32-Bit-Integer.
Syntax
;; Function returning an i32 constant
(func (result i32)
i32.const 42
)
;; i32 parameter and local
(func (param $p i32) (local $tmp i32)
;; ...
)
;; Mutable i32 global
(global $count (mut i32) (i32.const 0))
Beschreibung
i32-Werte sind 32 Bit breit und nicht von Natur aus unterzeichnet oder nicht unterzeichnet. Die Interpretation wird von jeder Anweisung gewählt: i32.div_s behandelt beispielsweise seine Operanden als Zweierkomplement-Ganzzahlen, während i32.div_u sie als nicht unterzeichnet behandelt. Wo die Unterscheidung das Ergebnis nicht beeinflusst, wie bei Addition, Subtraktion, Multiplikation und Bitoperationen, verarbeitet eine einzige Anweisung beide Interpretationen.
i32 ist der Standardadressentyp für Speicher- und Tabellenoperationen. Adressen, Offsets und Größen, die an Anweisungen wie i32.load und table.get übergeben werden, sind i32, es sei denn, ein Modul entscheidet sich für einen breiteren Adresstyp für den Speicher.
i32 ist transparent: Sein Bitmuster ist beobachtbar, und i32-Werte können im linearen Speicher gespeichert werden.
JavaScript-Schnittstelle
An der JavaScript-Grenze werden i32-Werte als JavaScript Number Werte übergeben. JavaScript-Zahlen außerhalb des Bereichs werden modulo 2³² gewickelt.
Spezifikationen
| Spezifikation |
|---|
| WebAssembly Core Specification> # number-types%E2%91%A0> |