function revbits(z::UInt64)
z = (((z & 0xaaaaaaaaaaaaaaaa) >> 1) | ((z & 0x5555555555555555) << 1))
z = (((z & 0xcccccccccccccccc) >> 2) | ((z & 0x3333333333333333) << 2))
z = (((z & 0xf0f0f0f0f0f0f0f0) >> 4) | ((z & 0x0f0f0f0f0f0f0f0f) << 4))
z = (((z & 0xff00ff00ff00ff00) >> 8) | ((z & 0x00ff00ff00ff00ff) << 8))
z = (((z & 0xffff0000ffff0000) >> 16) | ((z & 0x0000ffff0000ffff) << 16))
z = (((z & 0xffffffff00000000) >> 32) | ((z & 0x00000000ffffffff) << 32))
return z
end
not the fastest (table lookups are) but handy