逻辑与(&&)

运算符两边的表达式的值都为true运算结果为true, 其余情况为false。

逻辑或(||)

运算符两边的表达式的值都为false运算结果为false, 其余情况为true。

按位与(&)

计算方法:
参加运算的两个数,换算为二进制(0、1)后,进行与运算。只有当 相应位上全部为1时取1, 存在0时为0。

011 & 110011
110
---
010

按位或(|)

计算方法:
参加运算的两个数,换算为二进制(0、1)后,进行或运算。只要当 相应位上存在1时取1, 全部为0时为0。

011 | 110011
110
---
111

按位同或(⊙)

计算方法:
参加运算的两个数,换算为二进制(0、1)后,进行异或运算。只有当 相应位上的数字相同时取1, 不相同为0。

011 ⊙ 110011
110
---
010

按位异或(^)

计算方法:
参加运算的两个数,换算为二进制(0、1)后,进行异或运算。只有当 相应位上的数字不相同时取1, 相同为0。

011 ^ 110011
110
---
101

按位取反(~)

计算方法:
参加运算的两个数,换算为二进制(0、1)后, 0变1, 1变0。
~(010) = 101

优先级

not>and>xor>or

位运算详解


2019.7.30学习线性基更新

一些位运算中的简便运算

  • x & 1 是奇数返回1,是偶数返回零,可以放在if中判断奇偶
  • x |= 1<<j 等价于 x += pow(2,j);
  • x<<2 x<<1 在十进制中表现的是乘上2的多少次方,在二进制中,就是先将这个x转换为二进制,然后整个数往前移位。(最后转化回去还是一样的)
  • 状态压缩dp过程中用零一模拟Y or N的时候数1或零的个数
while (tem) {tem &= (tem-1);cnt++;
}

XOR

就是^运算
注意运算顺序

typedef long long ll;cout<<1^2<<endl;            //报错
cout<<(1^2)<<endl;          //输出3int a = 1^2<5;
int b = (1^2)<5;
cout<<a<<"  "<<b<<endl;       //输出0  1int c = 1ll<<3;
cout<<c<<endl;              //输出8  ll防止在往前移位的时候爆掉int

异或运算的性质

x ^ x = 0
任何数 ^ 0 = 任何数

逻辑与()、逻辑或(||)、按位与()、按位或(|)、按位异或(^)、按位取反(~)相关推荐

  1. C语言按位与 按位或 按位异或 按位取反

    与运算:& 两者都为1为1,否则为0 1&1=1,  1&0=0,  0&1=0,  0&0=0 或运算:| 两者都为0为0,否则为1 1|1 = 1,  1| ...

  2. C语言按位与 按位或 按位异或 按位取反(二)

    位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型 ...

  3. C语言按位与 按位或 按位异或 按位取反 (一)

    与运算:& 两者都为1为1,否则为0 1&1=1,  1&0=0,  0&1=0,  0&0=0 或运算:| 两者都为0为0,否则为1 1|1 = 1,  1| ...

  4. 位运算符:按位与(),按位或(|),按位异或(^),取反(~)左移()和右移()

    数据在内存中是以二进制的形式存放的,计算机存储数据的最小单位是位(bit),一个二进制位可以表示两种状态(0和1),一个字节通常由8位二进制位组成.C语言支持按位运算,按位运算也就是对字节或者字中的实 ...

  5. c/c++位操作简介--移位、位与、位或、异或

    概述 C/C++里面位操作符表示为如下:左移位 << ,右移位 >>,位与 &,位或 | ,位异或 ^,按位求反~. 位操作符针对的是补码形式(可参见下面的例子,其实我 ...

  6. 位运算专题一:位与、位或、位反

    位运算只用于所有的整型!!(char,short,int,long int,long long,unsigned char,unsigned short......),浮点值均不适用!!! 位运算有哪 ...

  7. 漫谈核心能力(3) -- 逻辑!逻辑!!逻辑!!!

    这是<漫谈核心能力>系列的第 3 篇,预计会写 10 篇左右.通过这个系列,我希望和大家分享下一个人的核心能力是什么,以及怎么去提高自己的核心能力.扫描文末二维码,关注公众号,不再错过精彩 ...

  8. js 逻辑与 逻辑或 快速记忆方法

    逻辑与 逻辑或 操作可以应用于任何类型的操作数,而不仅仅是布尔值. alert(true&&false); // false alert(true&&true); // ...

  9. 位与()、位或(|)、异或(^) 、左移<<、右移>>、原码、反码、补码的简单应用

    一.位与(&).位或(|).异或(^) 1.位与运算(&):两位同时为1,结果才为1,否则为0 参加运算的两个数据,按二进制位进行"&"运算. 运算规则:0 ...

  10. Java笔记(二)运算符——逻辑与逻辑或 / 按位与按位或 等( || 和 |)

    1 赋值运算符 2 算数运算符 2.1 + - * / % 2.2 自增自减 运算符:++ - - 3 关系运算符 4 逻辑运算符 && || !& | 5 位运算符 & ...

最新文章

  1. 对校招生培养工作的建议_高校学生会组织深化改革评估工作组对我校学生会复核验收...
  2. oracle exp导出分区表,【实验】【PARTITION】exp导出分区表数据
  3. 动态数据绑定之监听对象变化
  4. 性能计数器取网卡流量
  5. windows xp 下的putty不能使用小键盘的问题
  6. mysql 创建新用户权限_MySQL创建新用户以及权限授予
  7. centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法
  8. Java通过Mybatis实现批量插入数据到Oracle中
  9. idea maven工程显示灰色(不亮)
  10. wordpress编辑插件_如何使用Tabify编辑屏幕插件减少WordPress帖子编辑器屏幕的拥挤
  11. ASP.NET MVC 企业级实战 —— 创建用户权限管理范例程序(三)
  12. springboot事务管理
  13. 第二季-专题7-ARM跑快了---时钟初始化
  14. LSTM+attention代码原理详解
  15. 【BDTC 2018】PingCAP申砾:做一个真正通用的数据库产品
  16. 遥感数据产品分级体系
  17. 王者荣耀以鸿蒙起网名,王者荣耀
  18. python cv2什么意思_cv2,CV2是什么意思
  19. Linux相关的压缩解压缩命令
  20. python灰产_我用Python一键保存了半佛老师所有的骚气表情包

热门文章

  1. 申请鸿蒙开发者干什么,申请鸿蒙开发者有啥用?
  2. 敏捷项目经理_敏捷–什么是经理?
  3. 计算机操作记录怎么删除,win7电脑使用记录删除方法_win7电脑使用记录怎么删除-win7之家...
  4. 《镇魂街:天生为王》— 这条街,由UWA共同守护
  5. 并行处理及分布式系统
  6. Centos7.6 安装devstack
  7. python发送qq消息linux_使用Python发送QQ消息
  8. PPT文档管理控件Aspose.Slides v19.5上线发布!开始评估PDF转换的时间花费!
  9. 基于最小优先级队列构造哈夫曼树 Java
  10. CAD二次开发(C#)第一个例子