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

逻辑与(&&)、逻辑或(||)、按位与(&)、按位或(|)、按位异或(^)、按位取反(~)按位与计算方法:转换为二进制后,不够的位数补齐,然后通过0为false1为true的规则,对每一位之间进行与的运算(只有true+true才为true),最后再将数转回十进制。按位或计算方法:转换为二进制后,不够的位数补齐,然后通过0为false1为true的规则,对每一位之间进行或的运算(只有false+false才为false),最后再将数转回十进制。异或运算这是一种可以不用加号…

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

逻辑与(&&)

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

逻辑或(||)

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

按位与(&)

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

011 & 110

011
110
---
010

按位或(|)

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

011 | 110

011
110
---
111

按位同或(⊙)

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

011110

011
110
---
010

按位异或(^)

计算方法:
参加运算的两个数,换算为二进制(0、1)后,进行异或运算。只有当 相应位上的数字不相同时取1 相同为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或零的个数
while (tem) { 
   
 	tem &= (tem-1);
   	cnt++;
}

XOR

就是^运算
注意运算顺序

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.net/134869.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js如何替换指定的字符串_如果字符串内容替换

    js如何替换指定的字符串_如果字符串内容替换今天在写JavaScript替换字符串时,使用str.replace(“a”,”b”)方法替换发现只会替换第一个成功匹配的字符a而使用如果想要替换全部指定字符时,需要使用str.replace(/\a/g,”b”),这里g为全局标志,可以将全部的a替换成b…

    2025年8月19日
    2
  • 【python】urllib库之四大模块

    【python】urllib库之四大模块文章目录urllib库一urllib库四大模块1:urlopen()2:data参数3:timeout参数二:request.Request方法1:一般用法2:高级用法1:验证2:代理3:Cookies三:异常处理1:URLError2:HTTPError四:解析链接1:urlparse()2:urlunparse()3:urlsplit()4:urlunsplit()5:urljoin()6:…

    2025年5月24日
    2
  • JLINK V9项目启动【jlink接口定义】【开启VCOM(虚拟串口)功能】「建议收藏」

    JLINK V9项目启动【jlink接口定义】【开启VCOM(虚拟串口)功能】「建议收藏」jlink接口定义摘录于:https://blog.csdn.net/u014124220/article/details/50829713仿真器端口 连接目标板 备注 1.VCC MCU电源VCC VCC 2.VCC MCU电源VCC VCC 3.TRST TRST Tes…

    2022年5月28日
    255
  • jettison

    jettisonjson的相关东西真多,最后找到的适合我的情况的json是jettison相关文章jsonjson数组,json字符串解析

    2025年8月23日
    1
  • String转换Long两种方式

    Long.ValueOf(“String”)与Long.parseLong(“String”)的区别Long.ValueOf(“String”)返回Long包装类型Long.parseLong(“String”)返回long基本数据类型

    2022年4月5日
    71
  • java的异或_java中的异或

    java的异或_java中的异或一、异或介绍异或是一种基于二进制的位运算,用符号XOR或者^表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1。性质1、交换律2、结合律(即(a^b)^c==a^(b^c))3、对于任何数x,都有x^x=0,x^0=x4、自反性AXORBXORB=AXOR0=A二、异或使用异或运算最常见于多项式除法,不过它最重要的性质还是自反性:A^B^B…

    2022年10月4日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号