算法题_位运算_7_将二进制整数的奇偶位互换

位运算
将二进制整数的奇偶位互换
这道题是真的有点难,一开始想了好久,看了教程后,画了一些草图,才慢慢清晰,特此记录一下,方便自己复习。

题目:将整数的奇偶位互换
题目描述:例如整数9,二进制为1001,则换为0110,十进制为6
9 的二进制:00 00 10 01,交换之后
6 的二进制:00 00 01 10

解体思路:
1、拿到整数的二进制N
2、N 与 0101……0101做&运算,即可保留奇数位,得到数P
2.1、32位的二进制 "0101 …… 0101" 可写为十六进制 "0x5555 5555"
3、N 与 1010……1010做&运算,即可保留偶数位,得到数Q
3.1、32位的二进制 "1010 …… 1010" 可写为十六进制 "0xaaaa aaaa"
4、将P左移1位(P<<1) 与 Q右移一位(Q>>1) 做|运算,

算法题_位运算_7_将二进制整数的奇偶位互换最先出现在Python成神之路

版权声明:
作者:玉兰
链接:https://www.techfm.club/p/28760.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>