宏实现一个数奇数位和偶数位的交换
来源:互联网 发布:留学生回国工作 知乎 编辑:程序博客网 时间:2024/05/22 01:57
主体思想 1 分别提取一个数二进制中的奇数位和偶数位
奇数位:x&0x55555555 因为5的二进制序列是0101
偶数位:x&0xaaaaaaaa 因为a的二进制序列是1010
2 将提取出来的奇数位左移一位。偶数位右移一位。
3 进行或运算得到最终答案
例如 把10的二进制序列进行奇数偶数位交换。
10的二进制序列 1010
提取奇数位 :1010 & 0101---->0000 左移一位----->0000
提取偶数位 :1010 &1010----->1010 右移一位----->0101
进行或运算------------------- |
0101
#include<stdio.h>#include<stdlib.h>#define EXCHANGE(x) ((((x)& 0x55555555) << 1) | (((x)&0xAAAAAAAA)>>1))int main(){printf("Please Enter: "); int data = 0;scanf_s("%d", &data);printf("%d -> %d\n", data, EXCHANGE(data));system("pause");return 0;}
- 写一个宏实现一个数的奇数位和偶数位交换
- 宏实现一个数奇数位和偶数位的交换
- 写一个宏将一个数的奇数位和偶数位交换
- 写一个宏,将一个数的奇数位和偶数位交换
- 写一个宏可以将一个数的奇数位和偶数位交换
- 交换某数的奇数位和偶数位
- 宏函数实现一个数的奇数位和偶数位替换
- 写一个宏可以将一个数字的奇数位和偶数位交换。
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏将一个数字的奇数位和偶数位交换
- 【C语言】写一个宏将一个数字的奇数位和偶数位交换
- C语言 定义一个宏,用于交换一个二进制序列的奇数位和偶数位
- 写一个宏函数交换一个数字的偶数比特位和奇数比特位
- 写一个宏可以将一个数字的奇数位和偶数位交换。
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位(二进制)交换。
- 最大子串和
- 前端面试之Ajax和Json
- Part 89 - Remote validation in asp.net mvc
- 第十一周 OJ 牛顿迭代法求根
- 第十一周OJ——趣味取小数
- 宏实现一个数奇数位和偶数位的交换
- Part 90 - Remote validation in mvc when javascript is disabled
- Java中的IO整理
- java程序员的日常——经验贴(纯干货)
- 使用SpringMVC实现REST风格的CRUD功能
- 求三角形
- Android studio如何拆分编辑器窗口
- MarkDown 简书上传图片尺寸设置
- C#超基础:用方法判断闰年