DarwinBotsManual
Abrir la app EnglishEN

&

Y bit a bit de los dos números del tope: deja prendidos solo los bits que están prendidos en los dos. Sirve para consultar y apagar marcas.

Datos

Palabra
&
Familia
Bit a bit
Pila entera
saca 2, pone 1
Qué hace
Saca dos números y apila uno con prendidos solo los bits que están prendidos en 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 que tiene prendidos solo los bits que están prendidos en a y en b. 12 10 & da 8: en binario, 1100 y 1010 comparten solo el bit de valor 8.

Pila antesDespués de &
12 108
7 44
5 20

Tiene dos usos principales:

Un caso particular útil: x 1 & deja 1 si x es impar y 0 si es par. Con .robage da un gen que corre un ciclo sí y uno no:

' avanza solo en los ciclos de edad par
cond
  *.robage 1 & 0 =
start
  10 .up store
stop

Con negativos trabaja sobre el complemento a dos: -1 tiene todos los bits prendidos, así que x -1 & deja x tal cual. Con la pila vacía opera sobre ceros y da 0. El o y el o exclusivo son | y ^; para combinar verdaderos y falsos (no números) está and.