DarwinBotsManual
Abrir la app EnglishEN

--

Resta 1 al número del tope de la pila entera, sin tocar la memoria: 5 -- deja 4 y 0 -- deja −1.

Datos

Palabra
--
Familia
Bit a bit
Pila entera
saca 1, pone 1
Qué hace
Cambia el tope por ese número menos 1. En el borde de los 32 bits, −2147483647 -- da 0.
Costo
Comando de bits
Se ejecuta en
dentro de un gen: en la condición (cond) y en el cuerpo (start o else)

x -- saca un número y apila ese número menos 1. 5 -- da 4 y 0 -- da −1. Para los números de todos los días es lo mismo que 1 sub.

Sirve cuando un número calculado está corrido en uno. Por ejemplo, para llevar un número de ojo del 1 al 9 a un índice que empiece en 0:

' guarda en la 51 el valor de la 50 menos 1
cond
start
  *50 -- 51 store
stop

Con 9 en la celda 50, la 51 queda en 8.

Una rareza heredada, solo en el borde de los 32 bits: -- sobre −2147483647 debería dar el negativo más grande, pero da 0. Ningún valor de la memoria llega ahí. Con la pila vacía opera sobre 0 y deja −1. Lo opuesto es ++; el resto de la familia, en Bit a bit.