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

逻辑与(&&)、逻辑或(||)、按位与(&)、按位或(|)、按位异或(^)、按位取反(~)按位与计算方法:转换为二进制后,不够的位数补齐,然后通过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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue组件化的理解_vue的组件化是如何实现的

    vue组件化的理解_vue的组件化是如何实现的前言有时候有一组html结构的代码,并且这个上面可能还绑定了事件。然后这段代码可能有多个地方都被使用到了,如果都是拷贝来拷贝去,很多代码都是重复的,包括事件部分的代码都是重复的。那么这时候我们就可以

    2022年8月7日
    8
  • 电商后台管理系统(一)

    电商后台管理系统(一)后台管理系统git地址:https://gitee.com/kk23851一.项目大体架构二.用户登录用户登录页面思路:用Element表单验证完成以后,把数据存储到本地用户登录代码位置如图:三.用户管理用户列表页面绘制用户列表基本结构,请求用户列表数据,将用户列表数据展示,实现用户列表分页,实现搜索功能,实现添加用户,修改用户信息,删除用户,分配权限用户管理代码位置如图:四.权限管理权限管理有俩个板块分别是角色列表和权限列表,用到的技术无非就是element-ui,所

    2022年6月10日
    49
  • android时间控件

    android时间控件前言  这一篇博客分别讲解Android平台下,关于日期和时间的几个相关控件。包括DatePicker(日期选择控件)、TimePicker(时间选择控件)、DatePickerDialog(日期选择对话框)、TimePickerDialog(时间选择对话框)、AnalogClock(模拟时钟控件)、DigitalClock(数字时钟控件)。对于时间控件,无非就是一个展示、修改、获取等操作,下

    2022年5月23日
    48
  • Python中两List的Sql左连接实现

    内联接比较容易,之前做过,用两List的关键字进行if过滤即可;左(右)连接稍微麻烦一些,但稍思考一下,还是可以满足条件的。/Users/nisj/PycharmProjects/BiDataProc/Demand/hadoopStat/SqlLeftJoin.py#-*-coding=utf-8-*-importsysreload(sys)sys.setdefaultenc

    2022年4月16日
    82
  • 投影矩阵详解「建议收藏」

    投影矩阵详解「建议收藏」视锥就是场景中的一个三维空间,它的位置由视口的摄像机来决定。这个空间的形状决定了摄像机空间中的模型将被如何投影到屏幕上。透视投影是最常用的一种投影类型,使用这种投影,会使近处的对象看起来比远处的大一些。对于透视投影,视锥可以被初始化成金字塔形,将摄像机放在顶端。这个金字塔再经过前、后两个剪切面的分割,位于这两个面之间的部分就是视锥。只有位于视锥内的对象才可见。视锥由凹视野(  在

    2022年10月4日
    2
  • 计算机基础三: 二进制减法实现[通俗易懂]

    计算机基础三: 二进制减法实现[通俗易懂]在上一章中了解了如何实现二进制加法,加法是始终从两个加数的最右列向左列进位计算的,而在减法中没有进位,只有借位.253-176=77上面的式子我们不难算出来,但习惯性的思维让我们用借位的方式求值.在不借位的情况下如何实现计算?借位是很麻烦的事情,虽然我们能够实现它,但这意味着额外的开销.我们将用一个小技巧,让我们避开借位从而实现减法.为了避免借位,我们先从百位最大值999中减去减数,而非从原来的被减数中减去减数.999-176=823这个方法称为对9求补

    2022年9月24日
    4

发表回复

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

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