Hola a todos, estamos desarrollando un motor de ajedrez en el cual para hacer los movimientos de las piezas usamos corrimientos de bits o bitshifts. El problema es que cuando se hace el computo de 1<<38, este arroja como resultado 0x40 debiendo ser 0x4000000000. El segmento de código es el siguiente:
Ojalá me puedan ayudar un poco. Muchas gracias.
Código [Seleccionar]
int power=38;
unsigned long auxtab=0;
auxtab=(1<<power);
printf("Prueba: %x",auxtab);
Ojalá me puedan ayudar un poco. Muchas gracias.