原理
#include"stdio.h"
#include <time.h>
#include <stdlib.h>
typedef unsigned char u8;
typedef unsigned int u32;
typedef unsigned long long u64;
#define ROTR64(x,n) (((x)>>(n))|((x)<<(64-(n))))
#define ROTR32(x, n) (((x) >> (n)) | ((x) << (32 - (n))))
#define U32BIG(x) (x)
#define U64BIG(x) (x)
//u8 in[8] ;u32 out[2]。
void zxfto_bit_interleaving(u32 * out, u8 * in) {
u32 t0 = U32BIG(((u32*)in)[0]);
u32 t1 = U32BIG(((u32*)in)[1]);
u32 r0, r1;
r0 = (t0 ^ (t0 >> 1)) & 0x22222222, t0 ^= r0 ^ (r0 << 1);
r0 = (t0 ^ (t0 >> 2)) & 0x0C0C0C0C, t0 ^= r0 ^ (r0 << 2);
r0 = (t0 ^ (t0 >> 4)) & 0x00F000F0, t0 ^= r0 ^ (r0 << 4);
r0 = (t0 ^ (t0 >> 8)) & 0x0000FF00, t0 ^= r0 ^ (r0 <<