C语言 ——— 写一个宏,将一个整数的二进制位的奇数位和偶数位交换
目录
题目要求
代码实现
题目要求
写一个宏,将一个整数的二进制位的奇数位和偶数位交换
举例说明:
输入:10
10 的二进制为 1010 ,奇数位和偶数位交换后得 0101 ,也就是 5
输出:5
代码实现
代码演示:
#define SWAP(n) (n=(((n&0xaaaaaaaa)>>1) + ((n&0x55555555)<<1)))int main()
{int input = 0;scanf("%d", &input);printf("%d\n", SWAP(input));return 0;
}
代码验证: