<span style="font-size:18px;">#include <stdio.h>
#define SWAP_BIT(NUM) NUM=( (((NUM)&0x5555555555)<<1) | (((NUM)&0xaaaaaaaa)>>1) ) </span>
0x555555555516进制转换成2进制为0101 0101 0101 0101 0101 0101 0101 0101 与 NUM 按位与运算 得到 NUM的 奇数位,向左移动一位到偶数位,
0xaaaaaaaa16进制转化为2进制为0010 1010 1010 1010 1010 1010 1010 1010与 NUM与运算得到 NUM的偶数位,向右移动一位到奇数位,在做 或运算 就交换了奇数位和偶数位,使用宏时不要吝啬括号