📝 题述1:写一个函数,可以将一个整数的二进制位的奇数和偶数位交换(注:二进制的最低位为奇数位)
💨 输入描述:无
💨 输出描述:在屏幕上输出交换后的十进制数
🔑 核心思想:分别利用位操作得到偶数和奇数位,并让它们相加即可
#include<stdio.h> int SwapBit(int n) { return ((n & 0xaaaaaaaa) >> 1) + ((n & 0x55555555) << 1); } int main() { int n = 10; int ret = SwapBit(n); printf("%d\n", ret); return 0; }
📝 题述2:写一个宏,可以将一个整数的二进制位的奇数和偶数位交换(注:二进制的最低位为奇数位)
💨 输入描述:无
💨 输出描述:在屏幕上输出交换后的十进制数
🔑 核心思想:同上
#include<stdio.h> #define SwapBit(n) ((n & 0xaaaaaaaa) >> 1) + ((n & 0x55555555) << 1) int main() { int n = 10; int ret = SwapBit(n); printf("%d\n", ret); return 0; }