Para verlo:
printf("Prueba: %I64x", auxtab);
Y lo podes calcular asi:
unsigned long long auxtab = 1;
auxtab <<= power;
O asi:
auxtab=((unsigned long long)1 << power);
PD. Puede que no necesites hacer el casting ni cambiar el tipo segun lo que comentas del tamaño de la variable, con lo del printf estaria solucionado.
El problema no es la impresión en pantalla del número hexadecimal, el problema radica en que el cálculo se está haciendo mal. Pasamos ese número hexadecimal a una función que imprime un tablero gráfico y el número está mal.
Ya hemos probado diferentes posibles soluciones pero no obtenemos que haga el cálculo correctamente, nos corta a 32 bits siendo que usamos el SO de 64 bits y además el compilador es gcc de 64 bits.
¿Alguna idea?