位运算符的用法 ----非(!),与(&),或(|),异或(^)
2024-08-31 13:12:24
位运算符的用法 ----非(!),与(&),或(|),异或(^)
三种运算符均针对二进制
非!:是一元运算符。对一个二进制的整数按位取反,输入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
自主进行图解,加深理解,知识不是看会的是动手学会的!!!
如果还有实用的用处,请各路大佬留个言,求求求
最新文章
- 多个jar包合并成一个jar包的办法
- MySql事务概述
- linux——常用命令与脚本
- JQuery Mobile入门——设置后退按钮文字(转)
- MVC UpdateModel的未能更新XXXXX的类型模型
- JVM中的垃圾收集算法和Heap分区简记
- Ext 初级UI设计
- CodeIgniter连接数据库及快速入门
- [转]慎用InputStream的read()方法
- 【netlimiter】的使用
- bzoj 5301: [Cqoi2018]异或序列 (莫队算法)
- pydev+Eclipse搭建教程
- 【移动端】解决fixed定位闪动问题
- split-brain 脑裂问题(Keepalived)
- python - class类 (一)
- Java基础——反射
- 华为云Istio服务网格,让应用治理智能化、可视化
- spring-boot+quartz的CRUD动态任务管理系统
- JVM学习笔记(二):垃圾收集
- CXF 调用方式——动态创建客户端(调用稳定版本号为2.7.18)