C++关于二进制位操作小结
来源:互联网 发布:syslog 端口号 编辑:程序博客网 时间:2024/06/03 18:51
#include <iostream>using namespace std;//二进制位逆序。int Grial(int x){ int n = 32; int count = 0; while (n--) { count|= ((x&0x1) << n); x = ((unsigned)x >> 1); } return count;}int main(){ cout << Grial(1) << endl; return 0;}#include <iostream>using namespace std;//二进制位中的奇偶位互换。int Grial(int x){ int sum1 = x & 0x55555555; int sum2 = x & 0xaaaaaaaa; sum1 <<= 1; sum2 >>= 1; return sum1 | sum2;}int main(){ cout << Grial(6) << endl; return 0;}#include <iostream>using namespace std;//求两个数的和。int Grial(int x, int y){ if (!y)return x; //int ret = x^y; //-1%2=-1; int sum = x^y; int num = ((x&y)<<1); return Grial(sum,num);}int main(){ cout << Grial(3, 5) << endl; return 0;}#include <iostream>using namespace std;//判断一个数是不是2的n次方。bool Grial(int x){ return (x&(x - 1)) == 0;}int main(){ cout << Grial(4) << endl; return 0;}#include <iostream>using namespace std;//求二进制中1的个数。int Grial(int x){ int count = 0; while (x) { x = x&(x - 1); count++; } return count;}int main(){ cout << Grial(15) << endl;}#include <iostream>using namespace std;//求平均值。int Grial(int x,int y){ return (x&y) + ((x^y) >> 1);}int main(){ cout << Grial(20, 48) << endl; return 0;}#include <iostream>using namespace std;//求平均值。int Grial(int x,int y){ return x - (x - y) / 2;}int main(){ cout << Grial(3,9) << endl; return 0;}
1 0
- C++关于二进制位操作小结
- 关于C语言文件操作的小结
- 《C语言解惑》之 谜题1.4 二进制位操作符
- C语言头文件&预处理器&二进制位操作符
- 【C语言】一些关于二进制位的一些题题目哦。
- 二进制位操作技巧
- 二进制位的操作
- 二进制位的操作
- c++:const 操作小结
- C#----XML操作小结
- 谜题1.4 二进制位操作符
- 操作二进制位串的工具
- 复习二进制位的一些操作
- 关于二进制位——切记!!!
- 二进制位
- c#net操作xml小结
- 【C语言】文件操作小结
- c语言字符串操作小结
- Android旋转本地图片并保存
- js 支持兼容性的trim操作
- Android 为LinearLayout增加分割线 divider
- html 中文乱码
- ios构造函数
- C++关于二进制位操作小结
- xdebug安装和使用
- Hive配置项的含义详解(5)
- JAVA 毫秒时间转字符显示
- 月入3000也能理财,就看你会不会利用“钱生钱”
- Spring定时任务的几种实现
- 3度带和6度带的区别
- 复旦、交大“综合评价”面试今结束,详解两校面试全过程
- strftime和strptime使用