写一个宏实现一个数的奇数位和偶数位交换
来源:互联网 发布:上海 微软云计算架构师 编辑:程序博客网 时间:2024/06/01 08:53
假设我们需要交换的数字为x
将(x&(0x55555555))<<1; x按位与0x55555555后得到的二进制奇数位与x相同但偶数位均为0,然后再向左移一位,偶数位变为原来的奇数位,且移动后奇数位全为0;
将(x&(0xAAAAAAAA))>>1; x按位与0xAAAAAAAA后得到的二进制偶数位与x相同但奇数位均为0,然后再向右移一位,奇数位变为原来的偶数位,且移动后偶数位全为0;
将(x&(0x55555555))<<1; x按位与0x55555555后得到的二进制奇数位与x相同但偶数位均为0,然后再向左移一位,偶数位变为原来的奇数位,且移动后奇数位全为0;
将(x&(0xAAAAAAAA))>>1; x按位与0xAAAAAAAA后得到的二进制偶数位与x相同但奇数位均为0,然后再向右移一位,奇数位变为原来的偶数位,且移动后偶数位全为0;
通过将两个二进制按位或((x&(0x55555555))<<1|(x&(0xAAAAAAAA))>>1)就可以得到最终的数字。
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#define SWAP(x)\(((x&(0x55555555)) << 1) | ((x&(0xAAAAAAAA)) >> 1))int main(){int n = 0;printf("输入一个整数:");scanf("%d",&n);SWAP(n);printf("交换后为:%d\n", SWAP(n ));system("pause");return 0;}
阅读全文
0 0
- 写一个宏实现一个数的奇数位和偶数位交换
- 写一个宏将一个数的奇数位和偶数位交换
- 写一个宏,将一个数的奇数位和偶数位交换
- 写一个宏可以将一个数的奇数位和偶数位交换
- 宏实现一个数奇数位和偶数位的交换
- 写一个宏可以将一个数字的奇数位和偶数位交换。
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏将一个数字的奇数位和偶数位交换
- 【C语言】写一个宏将一个数字的奇数位和偶数位交换
- 写一个宏函数交换一个数字的偶数比特位和奇数比特位
- 写一个宏可以将一个数字的奇数位和偶数位交换。
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位(二进制)交换。
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换。
- 游戏控制.音乐代码
- RabbitMq--01
- iOS CoreAnimation专题——实战篇(一)惊艳的进度条效果实现
- PHP实现微信JS-SDK接口选择相册及拍照并上传的方法 lieren_chengshi 2016-12-05 8463 查看 0评论 公开 原文 举报 取精 添加收藏 本文实例讲述了
- rest风格 jquery ajax前台传输data control 方法中加入 @RequestBody 会报415的错误
- 写一个宏实现一个数的奇数位和偶数位交换
- Android开发之轮播图
- Python matplotlib简介 Pyplot教程
- 保存用户名密码的另一种方式 CREDENTIALW
- ubuntu linux for wps 在dpkg安装后,由于缺依赖被移除
- Oracle--ogg(goldengate)
- Cg Programming/Unity/Cookies
- 10,数据挖掘环境搭建-mysql安装
- 编程计算1到n之间的所有数的平方和立方(n由键盘输入)