第一个版本:

 
位运算符的计算主要用在二进制中。

实际开发中也经常会遇到需要用到这些运算符的时候,同时这些运算符也被作为基础的面试笔试题。
所以了解这些运算符对程序员来说是十分必要的。
于此,记录下我所理解的运算符:

如果以开关开灯论:
有这样两个开关,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

随机推荐

  1. lombok系列(一)

    如果在类上面使用@Builder注解, @Builder public class A { } controller中使用: public String test(@RequestBody A a){ ...

  2. crm 数据展示 和分页思想(一)

    1. 数据的展示 数据通过ORM查询出来 对象列表 QuerySet 1. 普通的字段 对象.字段名 ——> 数据库中的值 <td>{{ customer.phone }}</ ...

  3. Kafka实战分析(一)- 设计、部署规划及其调优

    1. Kafka概要设计 kafka在设计之初就需要考虑以下4个方面的问题: 吞吐量/延时 消息持久化 负载均衡和故障转移 伸缩性 1.1 吞吐量/延时 对于任何一个消息引擎而言,吞吐量都是至关重要的 ...

  4. 009_Palindrome Number

    #######solution1####### # def isPalindrome(x): # if x<0: # return False # else: # l=str(x) # newl ...

  5. mysql语句实战

    请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号:   这个比较难, 3.查询平均成绩大于60分的同学的学号和平均成绩: 4.查 ...

  6. laravel 跨库执行原生 sql 语句

    执行原生 sql 返回结果集

  7. TortoiseGit与GIt生成ssh秘钥添加到github账号的简单方法!简单使用

    今天升级了自己电脑上的git与TortoiseGit,全部换成了最新版,后来不知道怎么的git的秘钥还能使用,可以直接拉取或者提交ssh地址克隆的代码,可是小乌龟客户端就悲剧了 公司的项目有key.p ...

  8. CF1119B Alyona and a Narrow Fridge

    题目地址:CF1119B Alyona and a Narrow Fridge \(O(n^2)\) 暴力枚举+贪心 从小到大枚举答案 假设枚举到 \(i\) ,将 \(a_1\) 到 \(a_i\) ...

  9. 【溯源分析】疑似"摩诃草"组织最新样本分析及域名资产揭露

    1)场景 摩诃草组织(APT-C-09),又称HangOver.Patchwork.Dropping Elephant以及白象.该组织归属南亚某国,主要针对中国.巴基斯坦等亚洲国家和地区进行网络间谍活 ...

  10. OpenCV3编程入门读书笔记5-边缘检测

    一.边缘检测的一般步骤 1.滤波 边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能. 2.增强 增强边缘的基础是确定图像各 ...