He línea de código siguiente:¿Qué significa^= en c/C++?
contents[pos++] ^= key[shift++];
¿Qué significa operador ^=
?
He línea de código siguiente:¿Qué significa^= en c/C++?
contents[pos++] ^= key[shift++];
¿Qué significa operador ^=
?
Esto, por supuesto, asume que el operador '^ =' no se ha sobrecargado a quién sabe qué. :-) – corsiKa
También debe señalar que no es solo parte del lenguaje C [++] sino que está presente en muchos idiomas. – RobertPitt
Esto significa preforma una XOR operation en contents[pos++]
usando key[shift++]
y establece contents[pos++]
igual al resultado.
Ejemplo:
contents[pos++] 00010101
key[shift++] 10010001
--------
10000100
Es un bit a bit exclusiva o en dos enteros. http://bytes.com/topic/c/answers/726626-what-caret-qualifier
Pero específicamente, asigna el resultado de XOR al argumento de la izquierda. – chrisaycock
Es un operador XOR bit a bit.
x ^= y
es básicamente
x = x^y
por supuesto, se trata de una operación en modo bit
* suspiro * Antes de la Internet, tenía un libro muy gastado en mi escritorio llamada "El lenguaje de programación C". La respuesta a preguntas como esta siempre estuvo en ese libro. –
@Greg y ahora está en tu Kindle? – corsiKa
@Greg Hewgill: Querida generación más joven: Su generación apesta. Atentamente, cada generación desde el comienzo de los tiempos. :) – James