Aritmética entera en WebAssembly
Sin operadores, solo instrucciones — y la división declara su signo.
(module
;; Integer division and remainder come signed and unsigned; the
;; suffix picks. There is no operator syntax, only instructions.
(func (export "split_coins") (param $coins i32) (param $ways i32)
(result i32)
(i32.div_s (local.get $coins) (local.get $ways)))
(func (export "left_over") (param $coins i32) (param $ways i32)
(result i32)
(i32.rem_s (local.get $coins) (local.get $ways)))
(func (export "double_less_one") (param $n i32) (result i32)
(i32.sub (i32.mul (local.get $n) (i32.const 2)) (i32.const 1))))
Cómo funciona
i32.div_sdivide con signo;_uleería los bits sin signo.i32.rem_ses el resto que hace juego.- La matemática compuesta anida llamadas plegadas: multiplica y resta.
Palabras clave y builtins usados aquí
exportfunci32moduleparamresult
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 520
- Tokens
- 109
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 101 segundos.
Paso 1 de 3 en Números; paso 4 de 28 en Fundamentos del lenguaje.