前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >逻辑与(&&)、逻辑或(||)、按位与(&)、按位或(|)、按位异或(^)、按位取反(~)

逻辑与(&&)、逻辑或(||)、按位与(&)、按位或(|)、按位异或(^)、按位取反(~)

作者头像
全栈程序员站长
发布2022-09-06 12:01:27
发布2022-09-06 12:01:27
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

逻辑与(&&)

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

逻辑或(||)

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

按位与(&)

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

代码语言:javascript
代码运行次数:0
运行
复制
011 & 110

011
110
---
010

按位或(|)

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

代码语言:javascript
代码运行次数:0
运行
复制
011 | 110

011
110
---
111

按位同或(⊙)

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

代码语言:javascript
代码运行次数:0
运行
复制
011 ⊙ 110

011
110
---
010

按位异或(^)

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

代码语言:javascript
代码运行次数:0
运行
复制
011 ^ 110

011
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或零的个数
代码语言:javascript
代码运行次数:0
运行
复制
while (tem) { 
   
 	tem &= (tem-1);
   	cnt++;
}

XOR

就是^运算 注意运算顺序

代码语言:javascript
代码运行次数:0
运行
复制
typedef long long ll;

cout<<1^2<<endl;   			//报错
cout<<(1^2)<<endl;			//输出3

int a = 1^2<5;
int b = (1^2)<5;
cout<<a<<" "<<b<<endl;   	//输出0 1

int c = 1ll<<3;
cout<<c<<endl; 				//输出8 ll防止在往前移位的时候爆掉int

异或运算的性质

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134869.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月6,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 逻辑与(&&)
  • 逻辑或(||)
  • 按位与(&)
  • 按位或(|)
  • 按位同或(⊙)
  • 按位异或(^)
  • 按位取反(~)
  • 优先级
  • 一些位运算中的简便运算
  • XOR
  • 异或运算的性质
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档