muchas gracias por tu respuesta<br><br><div class="gmail_quote">El 4 de septiembre de 2010 01:52, Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu">srd4121@njit.edu</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hola Mai,<div class="im"><br>
<br>
On 9/3/2010 5:14 AM, maite mai wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
hola,<br>
<br>
estoy leyendo los operadores de asignación<br>
<br>
¿exáctamente qué hace <<=?  a = a << b; no me queda claro qué hace<br>
esta asignación. Gracias.<br>
<br>
</blockquote>
<br></div>
Esto es correcto. El comportamiento de <<= es la operación << y luego una asignación.<br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Podrías decirme también ^=<br>
<br>
</blockquote>
<br>
Supongo que estás en el capítulo 4 de nuestro curso de C++. Por ahora, no hemos visto estos operadores << y ^ porque son algo avanzados y no los necesitamos por el momento. Veremos éstos y otros operadores a nivel de bits en el capítulo 18 ( <a href="http://c.conclase.net/curso/index.php?cap=018#inicio" target="_blank">http://c.conclase.net/curso/index.php?cap=018#inicio</a> ).<br>

<br>
El operador << (desplazamineto a la izquierda) sirve para mudar una secuencia de bits a la izquierda una cantidad de lugares. Por ejemplo,<br>
<br>
unsigned short int num = 14;<br>
<br>
num <<= 3;<br>
<br>
Esta operación implica el siguiente comportamiento:<br>
<br>
num = num << 3;<br>
<br>
La operación del desplazamiento a la izquierda supone la siguiente operación donde 14 en binario es 0000000000001110:<br>
<br>
0000000000001110 << 3<br>
<br>
Movemos toda la secuencia 3 lugares a la izquierda. Ahora obtenemos esto:<br>
<br>
0000000001110000<br>
<br>
que en decimal es 112. Por lo tanto, asignamos este valor a 'num'.<br>
<br>
num <<= 3;<br>
<br>
cout << num;<br>
<br>
Aparecerá en pantalla:<br>
<br>
112<br>
<br>
Esto equivale a multiplicar 14 * 2^3 = 14 * 8 = 112. Típicamente, usamos << para multiplicar un entero no negativo por potencias de 2 y >> para dividirlo por potencias de 2.<br>
<br>
El operador ^ sirve para la operación XOR (OR exclusivo) a nivel de bits. Es sencillo de operar viendo la tabla:<br>
<br>
 A | B | A ^ B<br>
---+---+-------<br>
 0 | 0 |   0<br>
 0 | 1 |   1<br>
 1 | 0 |   1<br>
 1 | 1 |   0<br>
<br>
Si ambos operandos son iguales, entonces el resultado es 0; si son distintos, entonces el resultado es 1. Esta operación se aplica a cada pareja de bits en una secuencia. Por ejemplo,<br>
<br>
unsigned short int num1 = 14, num2 = 18;<br>
<br>
num1 ^= num2;<br>
<br>
Esto equivale a la siguiente operación:<br>
<br>
    0000000000001110<br>
XOR 0000000000010010<br>
--------------------<br>
    0000000000011100<br>
<br>
El resultado, en decimal, es 28, por lo que 'num1' contiene el número 28.<br>
<br>
<br>
Espero haber aclarado la duda.<br>
<br>
Steven<br>
<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</blockquote></div><br>