函数和宏实现交换二进制位
Posted 跳动的bit
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数和宏实现交换二进制位相关的知识,希望对你有一定的参考价值。
📝 题述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;
}
以上是关于函数和宏实现交换二进制位的主要内容,如果未能解决你的问题,请参考以下文章