[C con Clase] expresión &=

pablo pabloc en cimne.upc.edu
Mie Mayo 7 18:07:48 CEST 2008


Entonces es equivalente a ;

if (lambda[j] >= 0) inside=true;
else inside=false;

Gracias

El pasado 2008-05-07 15:51:46, Steven Davidson escribió:
 
SD> Hola Pablo,
SD> pabloc en cimne.upc.edu wrote:
SD> > Hola,
SD> > 
SD> > Que significado tiene esta expresión ;
SD> > 
SD> > bool inside; inside=true;
SD> > 
SD> > 
SD> > inside &= lambda[j] >= 0
SD> > 
SD> > donde lambda es un vector.
SD> > 
SD> Estás usando la verdad resultante de la expresión condicional 'lambda[j] 
SD>  >= 0'. Posteriormente , la veracidad forma parte de una operación AND 
SD> con el valor original de 'inside'. El resultado de tal operación es 
SD> asignado a 'inside'.
SD> De todas maneras, no aconsejo usar esta sentencia porque el operador &= 
SD> que es a nivel de bits no está diseñado para que funcione con valores 
SD> booleanos. 'false' se convierte en 0 (cero) y viceversa. Sin embargo, 
SD> con 'true', no tenemos un valor específico; sólo sabemos que no es 0 (cero).
SD> Por lo tanto, en la sentencia anterior, no sabemos qué va a pasar. Lo 
SD> más seguro es que no tendremos muchos problemas, pero no puedo 
SD> asegurarlo para todos los compiladores.
SD> Espero que esto aclare la duda.
SD> Steven
SD> _______________________________________________
SD> Lista de correo Cconclase Cconclase en listas.conclase.net
SD> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
SD> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ


Más información sobre la lista de distribución Cconclase