大连网站建设佳熙科技公司,设计类专业大专,用什么网站做动感相册,南京专业网站设计哪个品牌定义
运算名符号效果按位与如果两个相应的二进制位都为1#xff0c;则该位的结果值为1#xff0c;否则为0按位或l两个相应的二进制位中只要有一个为1#xff0c;该位的结果值为1按位异或^若参加运算的两个二进制位值相同则为0#xff0c;否则为1取反~对一个二进制数按…定义
运算名符号效果按位与如果两个相应的二进制位都为1则该位的结果值为1否则为0按位或l两个相应的二进制位中只要有一个为1该位的结果值为1按位异或^若参加运算的两个二进制位值相同则为0否则为1取反~对一个二进制数按位取反即将0变1将1变0左移用来将一个数的各二进制位全部左移N位右补0右移将一个数的各二进制位右移N位移到右端 的低位被舍弃对于无符号数高位补0
性质及应用
左移
每左移一位相等于乘上2
右移
每右移一位相当于除于2
按位与 判断a的第j位是0还是1若a(1j)为正该位是1否则该位为0。 每执行一次aa(a-1)会将a用二进制表示时最右边的一个1变为0 for(int s sta; s; s (s - 1) sta) //枚举出sta的所有子集如果需要判断一个数a是否为2的次幂只需要计算出a(a-1)的值如果是0的话该数是2的次幂反之则反之 取一个数a的最底位的1用a-a, 例如20(10) 10100(2),那么20-20 100(2);
按位异或 ^ 如果需要将a的第j位取反的话只需要进行 a^(1j)即可 利用自反性交换两个数按位异或有个很神奇的性质–自反性 a ^ b ^ b a; 利用这个性质我们可以不用第三个变量就能交换两个数
例如我们要交换a和b两个只需要进行以下操作即可a a ^ b;b a ^ b;a a ^ b;满足 交换律 a ^ bb ^ a 结合律 (a ^ b) ^ c a ^ (b ^ c) 对于任何数x都有 x ^ x0x^0x 若a ^ bc则a ^ cb
按位或 l
可以将a的第j位变为1用a|(1j)即可 update:
abab“且”的符号∧ ;“或”的符号∨ ;“异或”的符号⊕a ⊕ b ¬a ∧ b ∨ a ∧ ¬bab(a|b)(ab)a|b(ab)(a^b