http://www.dd.iij4u.or.jp/~okuyamak/Information/xor_fixed_swapping.html