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 Werttyp

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 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

Browser-Kompatibilität

Siehe auch