C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C语言宏整数二进制奇偶数位交换

C生万物C语言宏将整数二进制位的奇偶数位交换

作者:Fire_Cloud_1

这篇文章主要为大家介绍了C生万物C语言使用宏将整数二进制位的奇偶数位交换示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

✒题目分析 && 实现思路[位运算]

首先来说一下本题的实现思路🤔

1、获取这个整数的奇数位和偶数位

2、使用移位运算使【奇变偶】【偶变奇】

3、合并奇数位和偶数位

⌨代码分析

1、代码展示

看完整体的思路之后,相信你对本题一定有了大致的方向,我们将上述的思路转化为代码 如果对宏定义不太清楚的可以看看这篇文章——> C生万物 | 详解程序环境和预处理

#define SWAP(n) num = (((n & 0xaaaaaaaa) >> 1) | ((n & 0x55555555) << 1))
int main(void)
{
	int num = 36;
	int ret = SWAP(num);
	printf("num = %d\n", num);
	return 0;
}

来看看运行结果吧💻

2、算法图解分析

再通过画图来分析一下,就看得更清楚了

首先就是第一步,分别取出奇数位和偶数位

👉可以看到最后的结果就是我们程序的执行结果【24】

📰总结与提炼

总结一下本文所学习到的内容

本篇文章虽然讲解的内容并不多,但是攻克了一道难题,虽然宏的代码看起来比较简洁,但是要想到还是需要一些时间的。如果我们在写程序的时候能够巧妙地运用宏去进行解决,就能事半而功倍

以上就是C生万物使用宏将整数二进制位的奇偶数位交换的详细内容,更多关于C 宏整数二进制奇偶数位交换的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文