#define bswap(data, m, n) \ ((data >> m) == (data >> n) ? data : data ^ ((1 << m) | (1 << n))) 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 ^ ----------------- 0 1 0 1 0 0 1 1