I have a one 64-bit integer, which I need to rotate 90 degrees in 8 x 8 area (preferably with straight bit-manipulation). I cannot figure out any handy algorith
Without using any look-up tables, I can't see much better than treating each bit individually:
unsigned long r = 0; for (int i = 0; i < 64; ++i) { r += ((x >> i) & 1) << (((i % 8) * 8) + (7 - i / 8)); }