将整数的奇偶位互换

将整数的奇偶位互换

是什么?

将整数的奇偶位互换的意思是指将二进制数的奇偶位进行交换。例如,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))

 

posted @ 2022-02-21 22:01  天空之城—我的理想国  阅读(115)  评论(0)    收藏  举报