用位运算来处理集合中的交,并,补(对称差)运算
2013-12-21 12:18
225 查看
/* @author : liuwen */ #include <iostream> #include <cstdio> #include <cstring> #include <climits> //INT_MAX INT_MIN LONG_LONG_MAX LONG_LONG_MIN #include <cstdlib> #include <queue> #include <stack> #include <map> #include <vector> #include <cmath> #include <algorithm> using namespace std; int main() { int decimal1 = 36,decimal2=5; cout<<"第一个数(10进制):"<<decimal1<<endl; cout<<"第二个数(10进制):"<<decimal2<<endl; char binary1[255],binary2[255],binary3[255]; itoa(decimal1,binary1,2); itoa(decimal2,binary2,2); cout<<"各种集合之间的操作:"<<endl; //交集 cout<<"第一:交集 (A&B) "<<endl; cout<<" A = "<<binary1<<endl; cout<<" B = "<<binary2<<endl; itoa(decimal1&decimal2,binary3,2); cout<<" A&B == "<<binary3<<"(2)"<<endl; cout<<" A&B == "<<(decimal1&decimal2)<<"(10)"<<endl<<endl; //并集 cout<<"第二:并集 (A|B) "<<endl; cout<<" A = "<<binary1<<endl; cout<<" B = "<<binary2<<endl; itoa(decimal1|decimal2,binary3,2); cout<<" A|B == "<<binary3<<"(2)"<<endl; cout<<" A|B == "<<(decimal1|decimal2)<<"(10)"<<endl<<endl; //对称差集 cout<<"第三:对称差集 (A^B) "<<endl; cout<<" A = "<<binary1<<endl; cout<<" B = "<<binary2<<endl; itoa(decimal1^decimal2,binary3,2); cout<<" A|B == "<<binary3<<"(2)"<<endl; cout<<" A|B == "<<(decimal1^decimal2)<<"(10)"<<endl<<endl; //补集 cout<<"对称差集下面特殊的集合情况----->全集的补集:"<<endl; decimal1 = (1<<10)-1; //2^10-1, 全集为10个1 decimal2 = 37; //子集 100101 itoa(decimal1,binary1,2); itoa(decimal2,binary2,2); cout<<" 全集U = "<<binary1<<"(2)"<<"-----"<<decimal1<<"(10)"<<endl; cout<<" 子集S = "<<binary2<<"(2)"<<"-----"<<decimal2<<"(10)"<<endl; itoa(decimal1^decimal2,binary3,2); cout<<" 补集C = "<<binary3<<"(2)"<<"-----"<<(decimal1^decimal2)<<"(10)"<<endl<<endl; //可以发现,补集相当于U-S cout<<"可以发现,补集相当于U-S="<<decimal1<<" - "<<decimal2<<" = "<<decimal1-decimal2<<"(10)"<<endl; cout<<"但是速度却没有用位运^快"<<endl; return 0; }
相关文章推荐
- 位运算(2)-- 集合中的位运算
- 集算器协助java处理结构化文本的集合运算
- 集合运算处理顺序
- 集合的异或运算(对称差)
- 【图像处理】形态学及其它集合运算(Morphological and Other Set Operations)
- 集合运算与处理数据
- 利用位运算处理权限分配来优化数据库存储,并且提高运算效率
- OpenCV图像处理 图像的点运算 ( 灰度直方图 )
- 集合的交、并、差运算
- oracle集合运算_10级 学员 马林 课堂总结
- OOP规约 集合处理
- 用位运算实现两个整数的加减乘除运算
- 【离散数学】1.3集合的运算
- 图像处理:基础(模板、卷积运算)
- 【EPI】通过位运算求集合的全排列
- STL---集合的运算
- SQL集合运算:差集、交集、并集
- SQLSERVER数据集合的交、并、差集运算(intersect,union,except)
- 图像处理:基础(模板、卷积运算)
- 顺序表实现集合运算