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