一分钟掌握位运算符—与(&)、非(~)、或(|)、异或(^)
第一个版本:
实际开发中也经常会遇到需要用到这些运算符的时候,同时这些运算符也被作为基础的面试笔试题。
所以了解这些运算符对程序员来说是十分必要的。
于此,记录下我所理解的运算符:
如果以开关开灯论:
有这样两个开关,0为开关关闭,1为开关打开。
与(&)运算
与运算进行的是这样的算法:
0&0=0,0&1=0,1&0=0,1&1=1
在与运算中两个开关是串联的,如果我们要开灯,需要两个开关都打开灯才会打开。
理解为A与B都打开,则开灯,所以是1&1=1
任意一个开关没打开,都不开灯,所以其他运算都是0
通俗理解为A(与)&B都开则开,否则关
非(~)运算
非运算即取反运算,在二进制中1变0,0变1
110101进行非运算后为
001010即1010
或(|)运算
或运算进行的是这样的算法:
0&0=0,0&1=1,1&0=1,1&1=1
在或运算中两个开关是并联的,即一个开关开,则灯开。
如果任意一个开关开了,灯都会亮。
只有当两个开关都是关的,灯才不开。
理解为A(或)|B任意开则开
异或(^)运算
异或运算通俗地讲就是一句话
同为假,异为真
所以它是这样的算法:
0&0=0,0&1=1,1&0=1,1&1=0
第二个版本:
设真值为1,假值为0(true = 1, false = 0)。
与运算符:
与(&&):逻辑规则是两真才真。与and等同。
true && true = true ===> 1 && 1 = 1
true && false = false ===> 1 && 0 = 0
false && false = false ===> 0 && 0 = 0
false && true = false ===> 0 && 1 = 0
或运算符:
或(||):逻辑规则是只有一个为真就为真。与or等同。
true || true = true ===> 1 || 1 = 1
true || false = true ===> 1 || 0 = 1
false || false = false ===> 0 || 0 = 0
false || true = true ===> 0 || 1 = 1
异或运算符:
异或(^):逻辑规则是两个不同就为真。
true ^ true = false ===> 1 ^ 1 = 0
true ^ false = true ===> 1 ^ 0 = 1
false ^ false = false ===> 0 ^ 0 = 0
false ^ true = true ===> 0 ^ 1 = 1
非运算符:
非(!):逻辑规则是反转操作数的含义。与not等同。
!true =false ===> !1 = 0
!false=true ===> !0 =1
执行顺序:not > and > or
随机推荐
- lombok系列(一)
如果在类上面使用@Builder注解, @Builder public class A { } controller中使用: public String test(@RequestBody A a){ ...
- crm 数据展示 和分页思想(一)
1. 数据的展示 数据通过ORM查询出来 对象列表 QuerySet 1. 普通的字段 对象.字段名 ——> 数据库中的值 <td>{{ customer.phone }}</ ...
- Kafka实战分析(一)- 设计、部署规划及其调优
1. Kafka概要设计 kafka在设计之初就需要考虑以下4个方面的问题: 吞吐量/延时 消息持久化 负载均衡和故障转移 伸缩性 1.1 吞吐量/延时 对于任何一个消息引擎而言,吞吐量都是至关重要的 ...
- 009_Palindrome Number
#######solution1####### # def isPalindrome(x): # if x<0: # return False # else: # l=str(x) # newl ...
- mysql语句实战
请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 这个比较难, 3.查询平均成绩大于60分的同学的学号和平均成绩: 4.查 ...
- laravel 跨库执行原生 sql 语句
执行原生 sql 返回结果集
- TortoiseGit与GIt生成ssh秘钥添加到github账号的简单方法!简单使用
今天升级了自己电脑上的git与TortoiseGit,全部换成了最新版,后来不知道怎么的git的秘钥还能使用,可以直接拉取或者提交ssh地址克隆的代码,可是小乌龟客户端就悲剧了 公司的项目有key.p ...
- CF1119B Alyona and a Narrow Fridge
题目地址:CF1119B Alyona and a Narrow Fridge \(O(n^2)\) 暴力枚举+贪心 从小到大枚举答案 假设枚举到 \(i\) ,将 \(a_1\) 到 \(a_i\) ...
- 【溯源分析】疑似"摩诃草"组织最新样本分析及域名资产揭露
1)场景 摩诃草组织(APT-C-09),又称HangOver.Patchwork.Dropping Elephant以及白象.该组织归属南亚某国,主要针对中国.巴基斯坦等亚洲国家和地区进行网络间谍活 ...
- OpenCV3编程入门读书笔记5-边缘检测
一.边缘检测的一般步骤 1.滤波 边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能. 2.增强 增强边缘的基础是确定图像各 ...