首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >逻辑与(&&)、逻辑或(||)、按位与(&)、按位或(|)、按位异或(^)、按位取反(~)

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

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

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

逻辑与(&&)

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

逻辑或(||)

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

按位与(&)

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

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

011
110
---
010

按位或(|)

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

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

011
110
---
111

按位同或(⊙)

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
011110

011
110
---
010

按位异或(^)

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

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

XOR

就是^运算 注意运算顺序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
按位与、按位异或、按位取反「建议收藏」
& 按位与 | 按位或 ^ 按位异或 1. 按位与运算 按位与运算符”&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。 按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为0000000011111111)。 main(){ int a=9,b=5,c; c=a&b; printf(“a=%d/nb=%d/nc=%d/n”,a,b,c); } 2. 按位或运算 按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。 例如:9|5可写算式如下: 00001001|00000101 00001101 (十进制为13)可见9|5=13 main(){ int a=9,b=5,c; c=a|b; printf(“a=%d/nb=%d/nc=%d/n”,a,b,c); } 3. 按位异或运算 按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现,例如9^5可写成算式如下: 00001001^00000101 00001100 (十进制为12) main(){ int a=9; a=a^15; printf(“a=%d/n”,a); }
全栈程序员站长
2022/09/06
2.6K0
按位异或的深入理解[通俗易懂]
int j = 8; p = j << 1; cout<<p<<endl; 在这里,8左移一位就是8*2的结果16 。 移位运算是最有效的计算乘/除乘法的运算之一。   按位与(&)其功能是参与运算的两数各对应的二进制位相与。只有对应的两个二进制位均为1时,结果位才为1,否则为0 。参与运算的数以补码方式出现。 先举一个例子如下:   题目:请实现一个函数,输入一个正数,输出该数二进制表示中1的个数。
全栈程序员站长
2022/09/06
2.5K0
按位异或的深入理解[通俗易懂]
异或和与运算_逻辑异或运算规则
异或,是一个数学运算符,英文为exclusive OR,缩写为xor,应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:
全栈程序员站长
2022/09/16
5K0
按位异或运算符的讲解 (详细)
按位异或运算是数学或者计算机中运用到的数据处理的方法。感觉是一种思路,当然也是运用到了他的原理。
全栈程序员站长
2022/09/06
1.6K0
mysql 按位取反_按位与,按位异或,按位取反「建议收藏」
PHP按位与或 (^ 、&)运算也是很常用的逻辑判断类型,有许多的PHP新手们或许对此并不太熟悉,今天结合一些代码对PHP与或运算做些介绍,先说明下,在PHP中,按位与主要是对二进制数操作:
全栈程序员站长
2022/09/22
2.8K0
java按位异或的运算是,深入理解按位异或运算符
例如对数10100001的第2位和第3位翻转,则可以将该数与00000110进行按位异或运算。
全栈程序员站长
2022/09/06
1.1K0
按位与、或、异或等运算方法
运算规则:0&0=0;   0&1=0;    1&0=0;     1&1=1;
Java架构师必看
2021/03/22
2.6K0
位运算
​ 任何信息在计算机中都是采用二进制表示的,数据在计算机中是以补码形式存储的,位运算就是直接对整数在内存中的二进制位进行运算。由于位运算直接对内存数据进行操作,不需要转换成十进制,因此处理速度非常快,在信息学竞赛中往往可以优化理论时间复杂度的系数(常数优化)。
fishhh
2022/08/30
1K0
位运算
按位取反运算符的运算举例_按位与按位或按位异或运算符
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170462.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/21
1.3K0
异或运算(XOR)[通俗易懂]
异或运算是一种数学运算符,主要应用于逻辑运算和计算机体系中的位运算。异或运算的数学符号常表示为“⊕”,运算法则为:A ⊕ B = (¬A ∧B) ∨ (A ∧¬B)。 简单研究下1个位(比特)的异或运算。
全栈程序员站长
2022/09/07
24.7K0
异或运算(XOR)[通俗易懂]
计算机基础之位运算 | 按位取反
程序中的所有数在计算机内存中都是以二进制的形式储存的。位操作是程序设计中对位模式或二进制数的一元和二元操作。在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。在现代架构中,情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算)。(摘自维基百科)
宋天伦
2020/08/10
6.8K0
按位取反~运算_按位与按位或按位异或运算符
这个过程没有任何问题,但是如果忘记了负数的二进制表达方式,就会对这个结果产生疑问,为什么11110110表示-10而不是503?理解按位取反的关键是理解11110110为什么表示-10,也就是负数的二进制表达方式。
全栈程序员站长
2022/09/22
2K0
C的|、||、&、&&、异或、~、!运算 位运算
研究这个的起因是我遇到一个题目,判断一个数是奇偶数,这个很简单,但是又个最佳代码 判断奇偶时用了
十四君
2019/11/28
1.6K0
JAVA中有趣的位运算
当我们看一些源码的时候,经常会看到诸如 &、|、^、~ 的符号,这些就是位运算符。
acupt
2019/09/02
9130
【C&C++】二进制数据的位运算(如何存储字符)
【字符变量用来存储字符,一个字符占1个字节(8位),字符存储的其实是 ASCII 码表中所对应的整数,这些整数以 0-1 串来表示。】
Twcat_tree
2022/11/30
7340
【C&C++】二进制数据的位运算(如何存储字符)
位运算(位运算的技巧、二进制中1的个数、区间或、异或森林)
对于整数5(二进制表示为00000101),执行左移三位操作,相当于执行 5 * (
走在努力路上的自己
2024/03/08
4930
位运算(位运算的技巧、二进制中1的个数、区间或、异或森林)
深入理解Java中的位运算符
今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。
喵手
2023/11/21
8050
深入理解Java中的位运算符
位运算之异或(XOR)
一个二进制数减1, 相当于把这个数的从最右侧的1开始flio翻转
CoffeeLand
2020/03/28
1.8K0
按位异或解题技巧「建议收藏」
按位异或可以解决类似开灯问题一类的问题。 首先了解下什么是按位异或: 异或运算:
全栈程序员站长
2022/09/05
6930
位与进制
 这里我假设读者有二进制的思维,知道(3)~10~=(011)~2~将十进制转换为二进制的方法
mathor
2018/08/03
5410
相关推荐
按位与、按位异或、按位取反「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验