Desplazar no es un problema:
https://en.wikipedia.org/wiki/Two%27s_complement#Addition
Código (c++) [Seleccionar]
for (int x = 0; x < 64; ++x)
printf("%d 0x%.I64X\r\n", x, (int64_t)1 << x);
https://en.wikipedia.org/wiki/Two%27s_complement#Addition