位运算实现交换以及四则运算
来源:互联网 发布:java抽象方法的作用 编辑:程序博客网 时间:2024/06/13 03:41
1、位运算实现数字的交换
void Swap(int &a,int &b){int c = a ^ b;b = c ^ b;a = c ^ a;}void main(){int a = 10;int b = 20;Swap(a,b);cout<<a<<" "<<b<<endl;}2、位运算实现加法
int Add(int a,int b){int c;int sum;do{sum = a ^ b;c = (a & b) << 1;a = sum;b = c;}while(c);return sum;}void main(){int a = 10; int b = 20;cout<<Add(a,b)<<endl;}
3、位运算实现减法
int Add(int a,int b){int c;int sum;do{sum = a ^ b;c = (a & b) << 1;a = sum;b = c;}while(c);return sum;}int Sub(int a,int b){b = ~b;b = Add(b,1);return Add(a,b);}void main(){int a = 20;int b = 10;cout<<Sub(a,b)<<endl;}4、实现乘法
int Add(int a,int b){int c;int sum;do{sum = a ^ b;c = (a & b) << 1;a = sum;b = c;}while(c);return sum;}int Mul(int a,int b){int mul = 0;for(int i = 0; i < b; ++i){mul = Add(mul,a);}return mul;}void main(){int a = 10;int b = 20;cout<<Mul(a,b)<<endl;}5、除法类似,就是利用减法,或者直接利用加法,确定需要累加的个数。
6、判断一个数是不是2的幂次方
bool Is_two(int tmp){int i = 1;while(i <= tmp){if(i & tmp && (i ^ tmp) == 0)return true;i <<= 1;}return false;}void main(){int tmp;while(cin>>tmp,tmp != -1){if(Is_two(tmp))cout<<"true"<<endl;elsecout<<"error"<<endl;}}
阅读全文
0 0
- 位运算实现交换以及四则运算
- 位运算实现四则运算
- 位运算实现四则运算
- 位运算实现四则运算
- 位运算实现四则运算
- 位运算实现四则运算
- 位运算实现四则运算
- 位运算实现加减乘除四则运算
- 利用位运算实现四则运算-华为面试
- 用位运算实现四则运算之加减乘除 .
- 用位运算实现四则运算之加减乘除
- 用位运算实现四则运算之加减乘除
- 用位运算实现四则运算之加减乘除
- 使用位运算实现加减乘除四则运算
- 用位运算实现四则运算之加减乘除
- 用位运算实现四则运算之加减乘除
- 用位运算实现四则运算之加减乘除
- 用位运算实现四则运算之加减乘除
- java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)解决方法
- 程序时间测定
- JMeter入门-从零开始的JMeter生活(一)
- c++单继承、多继承、菱形继承的内存布局(虚函数表结构)
- Plotagraph软件五分钟光速速成傻瓜教程
- 位运算实现交换以及四则运算
- Shell中获取脚本所在目录绝对路径的方法
- 11个实用但你可能不知道的Python程序库
- java线程和线程组的初始化
- 未能从程序集“Oracle.ManagedDataAccess”加载 “OracleInternal.Common.ConfigBaseClass”
- 2726:集合问题(3.7数据结构之堆)
- HDU 6097 数学几何
- 基础排序算法个人小结(未完待续).md
- 数据库的学习-主表操作