1. #define bswap(data, m, n) \
    2. ((data >> m) == (data >> n) ? data : data ^ ((1 << m) | (1 << n)))
    3. 0 1 0 1 0 1 0 1
    4. 0 0 0 0 0 1 1 0
    5. ^ -----------------
    6. 0 1 0 1 0 0 1 1