将整数的奇偶位互换
将整数的奇偶位互换
是什么?
将整数的奇偶位互换的意思是指将二进制数的奇偶位进行交换。例如,10101010变为01010101、10010010 变为01100001....即从左往右两两交换。
如整数9即二进制位1001,先将1001与1010 &(与)一下,得到1000,之后右移一位0100;
再将1001与0101 &(与)一下,得到0001,之后左移一位0010;
最后将得到的0100和0010异或(^)一下,得到结果0110
解法?
a=int(input())
b=a&0xaaaaaaaa//表示与二进制10101010101010101010101010101010表示4字节的int型,保留偶数位。
c=a&0x55555555//表示与二进制01010101010101010101010101010101表示4字节的int型,保留奇数位。
print((b>>1)^(c<<1))

浙公网安备 33010602011771号