位运算符的用法 ----非(!),与(&),或(|),异或(^)
位运算符的用法 ----非(!),与(&),或(|),异或(^)
三种运算符均针对二进制
非!:是一元运算符。对一个二进制的整数按位取反,输入0则输出1,输入1则输出0。
例:
0100 -(4) 输入
1011 -(11) 输出
与&:二元运算符,两个输入。按位计算。输入都是1则输出1;否则输出0;(一0得0)
通俗来讲两个都是1才是1.否则是0
0100 -(4) 输入1
1011 -(11) 输入2
& 0000 -(0) 输出
或|:二元运算符,两个输入。按位计算。输入都是1则输出1;否则输出0;(一0得0)
通俗来讲两个只要有一个是1就是1.否则是0
0100 -(4) 输入1
1011 -(11)输入2
| 1111 -(15)输出
异或^ :二元运算符。并不是独立存在的位运算符,而是组合而成。可以用其他的运算符等价表示(相同为0,不同为1)
异或运算按位比较,当输入的两个位相同时输出0,不相同时输出
通俗来讲两个位相同时输出0,不相同时输出
例:将10101101左5位反转
10101101
11111000 ^
0101101
异或的特性:
1、交换律 可任意交换运算因子的位置,结果不变
如:a^ b==b^a
2、结合律(即(a ^ b) ^ c == a^ (b^c))
3、对于任何数x,都有x^ x=0,x^0=x,同自己求异或为0,同0求异或为自己
4、自反性 A ^ B ^ B = A ^ 0 = A ,连续和同一个因子做异或运算,最终结果为自己
5、一个数同自己进行偶数次异或运算结果为0、
一个数同自己进行奇数次异或运算结果为本身。
用处
判断奇偶数
7&1==1;判断是否为奇数
7&1==0;判断是否为偶数
图解:

进行两数互换
int a=5;
int b=10;
a=a^b^(b=a);
输出后a=10,b=5
自主进行图解,加深理解,知识不是看会的是动手学会的!!!
如果还有实用的用处,请各路大佬留个言,求求求
随机推荐
- C# 读取保存xml文件
直接读取xml文件中的内容 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(result); XmlNode root = xmlDoc. ...
- LeetCode42. 接雨水(java)
42.接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种 ...
- The Second Week lucklyzpp
The Second Week 文件通配符模式 在Linux系统中预定义的字符类 1.显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录 2.复制/etc目录下 ...
- 笔记本+ubuntu18.04 关闭触摸板touchpad
方法1: Settings -> Devices -> Mouse&Touchpad -> Touchpad OFF 方法2: 终端运行如下命令 touchpad off: ...
- 一次PHP大马提权
记一次PHP提权 发现 PHP大马:指木马病毒:PHP大马,就是PHP写的提取站点权限的程序:因为带有提权或者修改站点功能,所以称为叫木马. 自从师哥那里听说过之后,一直感叹于PHP大马的神奇...但 ...
- adb 常用命令大全(4)- 应用管理
查看应用列表 语法格式 adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER] ...
- C# Dapper基本三层架构使用 (四、Web UI层)
三层架构的好处,一套代码无论WinForm还是Web都可以通用,只写前台逻辑就可以了,现在展示Web调用三层的示例 首先在项目中创建一个Web MVC5项目,目前项目目录如下 在Web项目Web.co ...
- WPF Prism8.0中注册Nlog日志服务
无论是Nlog还是Serilog, 它们都提供了如何快速在各类应用程序当中的快速使用方法. 尽管,你现在无论是在WPF或者ASP.NET Core当中, 都可以使用ServiceCollection来 ...
- 第一类值VS第二类值
数据类型的分类:第一类值VS第二类值 第一类值:变量中可以存储函数,也就是说func类似int/double. 第二类值: 1.不能存储函数,不能动态创建函数,不能动态销毁函数; 2.只能存储一个指向 ...
- 2020ICPC沈阳站C题 Mean Streets of Gadgetzan
大致题意 原题链接 翻译 \(有n个逻辑变量 请你分别对它们赋值 使其满足m个命题\) \(命题有四种格式:\) 单独数字x 表示第x个逻辑变量为真 ! + 数字x 表示第x个逻辑变量为假 若干个数字 ...