题目:写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换。
1.如何交换奇偶位(涉及基础知识位运算)
举例:如1001 奇偶位互换之后是0110;(先搞懂这个简单举例)
(1).将奇数位保留,偶数位全部变为0:1000
(2).将偶数位保留,奇数位全部变为0:0001
(3).奇数位左移:0100
(4).偶数位右移:0010
(5)将左移右移的结果相加起来:0110
本题交换整数二进制的基本思路和步骤也是如此
2.本题思路:
以10举例子
二进制:00000000000000000000000000001010,,分别交换奇偶位。
(1).将奇数位保留,偶数位全部变为0:00000000000000000000000000000000
(2).将偶数位保留,奇数位全部变为0:00000000000000000000000000001010
(3).奇数位左移:0000000000000000000000000000000
(4).偶数位右移:00000000000000000000000000000101
(5)将左移右移的结果相加起来:00000000000000000000000000001010