【位运算】集合的整数表示 炸鸡 2017-05-24 语言基础 为了学习状压等等要用到二进制的东西,先来介绍(鬼扯)一下位运算的几个知识 12345x<<n //x在二进制中左移n位x>>n //x在二进制中右移n位x&y //x与y按位“与”x|y //x与y按位“或”~x //x按位取反 于是有了这些基础就可以推出(虾搞)许多状态 在此用一个整数表示一个集合中是否有第i(i>0)个元素(有则二进制第i位为1,反之为0): 123456780 //空集1<<(i-1) //只含有第i个元素(1<<i)-1 //含有第1~i个元素if (S>>(i-1)&1) //判断第i个元素是否属于SS|1<<(i-1) //向S中加入第i个元素S&~(1<<(i-1)) //从S中删除第i个元素S|T //S与T的并集S&T //S与T的交集 基本就这些