Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

i32: Wasm-Typ

Der i32 Werttyp hält einen 32-Bit-Integer.

Syntax

wat
;; 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 Bits breit und sind nicht von Natur aus vorzeichenbehaftet oder vorzeichenlos. Die Interpretation wird von jeder Anweisung gewählt: i32.div_s behandelt beispielsweise seine Operanden als Zweierkomplement vorzeichenbehafteter Integer, während i32.div_u sie als vorzeichenlos behandelt. Wo die Unterscheidung das Ergebnis nicht beeinflusst, wie bei Addition, Subtraktion, Multiplikation und bitweisen Operationen, behandelt eine einzelne Anweisung beide Interpretationen.

i32 ist der Standardadressentyp für Speicher- und Tabellenvorgänge. 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 Adressentyp für den Speicher.

i32 ist transparent: sein Bitmuster ist beobachtbar, und i32-Werte können im linearen Speicher gespeichert werden.

JavaScript-Grenze

An der JavaScript-Grenze werden i32-Werte als JavaScript-Number-Werte übergeben. JavaScript-Zahlen außerhalb des Bereichs wickeln sich modulo 2³².

Spezifikationen

Spezifikation
Unknown specification
# syntax-numtype

Siehe auch