^
O exclusivo bit a bit de los dos números del tope: deja prendidos los bits que están en uno solo de los dos. Sirve para dar vuelta marcas.
Datos
- Palabra
^- Familia
- Bit a bit
- Pila entera
- saca 2, pone 1
- Qué hace
- Saca dos números y apila uno con prendidos los bits que están prendidos en uno solo de los dos. Con la pila vacía 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)
a b ^ saca dos números y deja otro con prendidos los bits que están prendidos en uno solo de ellos. 12 10 ^ da 6 (1100 y 1010 difieren en los bits de valor 4 y 2).
Su uso típico es dar vuelta una marca: si el bit estaba prendido lo apaga, y si estaba apagado lo prende. Este bot alterna la celda 50 entre 0 y 1 en cada ciclo, algo que sirve para hacer una cosa un ciclo y otra el siguiente:
' la celda 50 vale 1, 0, 1, 0…
cond
start
*50 1 ^ 50 store
stopOtro uso: a b ^ da 0 solo si a y b son iguales bit por bit, así que a b ^ 0 = es lo mismo que a b =.
Hacer ^ dos veces con el mismo número deja todo como estaba. Con la pila vacía opera sobre ceros. Las demás operaciones de bits están en Bit a bit; el o exclusivo de verdaderos y falsos es xor.