位运算符的用法 ----非(!),与(&),或(|),异或(^)
位运算符的用法 ----非(!),与(&),或(|),异或(^)
三种运算符均针对二进制
非!:是一元运算符。对一个二进制的整数按位取反,输入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
自主进行图解,加深理解,知识不是看会的是动手学会的!!!
如果还有实用的用处,请各路大佬留个言,求求求
随机推荐
- Java String 综述(上篇)
摘要: Java 中的 String类 是我们日常开发中使用最为频繁的一个类,但要想真正掌握的这个类却不是一件容易的事情.笔者为了还原String类的真实全貌,先分为上.下两篇博文来综述Java中的S ...
- rabbitMq消费死循环
消费过程发生错误容易造成死循环 1.控制重发次数 2.try+catch+手动ack 3.try+catch+手动ack+死信队列(重试次数就失效了,因为捕捉确认后被打入了相应的死信队列) void ...
- 微信小程序从入门到实践(一)-设置底部导航栏
微信小程序最多能加5个导航图标.因为我们只有两个默认页面,这里我们就添加两个导航图标 先看我们要达到的就是这么一个效果 接下来开始实践: (1)准备工作 找几个图标,将上述起好名字的图标 保存到 小程 ...
- Learning to Compare: Relation Network for Few-Shot Learning 论文笔记
主要原理: 和Siamese Neural Networks一样,将分类问题转换成两个输入的相似性问题. 和Siamese Neural Networks不同的是: Relation Network中 ...
- Leetcode 146. LRU 缓存机制
前言 缓存是一种提高数据读取性能的技术,在计算机中cpu和主内存之间读取数据存在差异,CPU和主内存之间有CPU缓存,而且在内存和硬盘有内存缓存.当主存容量远大于CPU缓存,或磁盘容量远大于主存时,哪 ...
- HDD成都站:HMS Core 6.0带来新可能 多元服务驱动产品商业成功
9月10日,由华为开发者联盟主办的HDD(Huawei Developer Day)于成都举行.活动中,华为HMS Core各领域专家重点解读了HMS Core 6.0为开发者带来的多项全新能力,及生 ...
- 代码注释规范之Doxygen
1.Doxygen简介 Doxygen是一个程序的文档产生工具,可以将程序中的注释转换成说明文档或者说是API参考手册,从而减少程序员整理文档的时间.当然这里程序中的注释需要遵循一定的规则书写,才能让 ...
- ysoserial CommonsColletions7分析
CC7也是一条比较通用的链了,不过对于其原理的话,其实还是挺复杂的.文章如有错误,敬请大佬们斧正 CC7利用的是hashtable#readObject作为反序列化入口.AbstractMap的equ ...
- Java Web实现登录验证码(Servlet+jsp)
1.生成验证码图片(Servlet) import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import j ...
- KMP算法解决字符串匹配问题
要解决的问题 假设字符串str长度为N,字符串match长度为M,M <= N, 想确定str中是否有某个子串是等于match的.返回和match匹配的字符串的首字母在str的位置,如果不匹配, ...