DarwinBotsManual
Abrir la app EnglishEN

mult

Multiplica los dos números de arriba de la pila entera; si el producto pasa de 2000 millones, se queda en ese tope.

Datos

Palabra
mult
Familia
Básicos
Pila entera
saca 2, pone 1
Qué hace
Saca dos números y apila su producto. Si pasa de 2000 millones, se queda en ±2000 millones.
Costo
Comando básico
Se ejecuta en
dentro de un gen: en la condición (cond) y en el cuerpo (start o else)

a b mult deja a · b. Sirve para escalar una lectura (*.eye5 2 mult), para armar números más grandes que el literal máximo (200 200 mult da 40000) y, junto con div, para cuentas proporcionales.

PalabraPila después
300300
300300 300
mult90000

A diferencia de add y sub, que dan la vuelta, mult satura: si el producto pasa de 2000 millones (para un lado o para el otro), deja exactamente ±2000000000.

Lo que sí hay que tener en cuenta es el recorte al guardar. La pila aguanta el 90000, pero una celda de memoria no:

cond
start
  300 300 mult 50 store
  300 300 mult 300 div 51 store
stop

La celda 50 termina en 26000 (el resto de dividir 90000 por 32000) y la 51 en 300, porque la división achicó el número antes de guardarlo. Ver Números y direcciones.