[C con Clase] duda simple

maite mai hablaconmaite en gmail.com
Lun Sep 6 21:04:44 CEST 2010


muchas gracias por tu respuesta

El 4 de septiembre de 2010 01:52, Steven Davidson <srd4121 en njit.edu>escribió:

> Hola Mai,
>
>
> On 9/3/2010 5:14 AM, maite mai wrote:
>
>> hola,
>>
>> estoy leyendo los operadores de asignación
>>
>> ¿exáctamente qué hace <<=?  a = a << b; no me queda claro qué hace
>> esta asignación. Gracias.
>>
>>
> Esto es correcto. El comportamiento de <<= es la operación << y luego una
> asignación.
>
>  Podrías decirme también ^=
>>
>>
> 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 ( http://c.conclase.net/curso/index.php?cap=018#inicio).
>
> El operador << (desplazamineto a la izquierda) sirve para mudar una
> secuencia de bits a la izquierda una cantidad de lugares. Por ejemplo,
>
> unsigned short int num = 14;
>
> num <<= 3;
>
> Esta operación implica el siguiente comportamiento:
>
> num = num << 3;
>
> La operación del desplazamiento a la izquierda supone la siguiente
> operación donde 14 en binario es 0000000000001110:
>
> 0000000000001110 << 3
>
> Movemos toda la secuencia 3 lugares a la izquierda. Ahora obtenemos esto:
>
> 0000000001110000
>
> que en decimal es 112. Por lo tanto, asignamos este valor a 'num'.
>
> num <<= 3;
>
> cout << num;
>
> Aparecerá en pantalla:
>
> 112
>
> 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.
>
> El operador ^ sirve para la operación XOR (OR exclusivo) a nivel de bits.
> Es sencillo de operar viendo la tabla:
>
>  A | B | A ^ B
> ---+---+-------
>  0 | 0 |   0
>  0 | 1 |   1
>  1 | 0 |   1
>  1 | 1 |   0
>
> 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,
>
> unsigned short int num1 = 14, num2 = 18;
>
> num1 ^= num2;
>
> Esto equivale a la siguiente operación:
>
>    0000000000001110
> XOR 0000000000010010
> --------------------
>    0000000000011100
>
> El resultado, en decimal, es 28, por lo que 'num1' contiene el número 28.
>
>
> Espero haber aclarado la duda.
>
> Steven
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100906/992e69e7/attachment.html>


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