第一个版本:

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

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

如果以开关开灯论:
有这样两个开关,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. docker系列(1)- 配置

    参考自:https://www.jianshu.com/p/81bf5efff8e0

  2. Ajax与JSON共同使用的小实例

    实现的效果: 点击“点击”按钮,可以通过Ajax从服务器调过来相应的文档文件,而不需重新加载页面. 通过json可以将调过来的文档(String)转换为相应的json对象,从而对文档中数据进行操作. ...

  3. 同步Name到Comment 及 同步 Comment 到Name

    在 PowerDesigner执行命令  Tools->Execute Commands->Edit/Run Scripts 代码一:将Name中的字符COPY至Comment中 Opti ...

  4. ES7 and ES8 特性

    ES7 特性:1.Array.prototype.includes let arr = ['react', 'angular', 'vue'] // Correct if (arr.includes( ...

  5. 人工智能-调百度AI接口+图灵机器人

    1.登陆百度AI的官网 1.注册:没有账号注册 2.创建应用 3.创建应用 4.查看应用的ID 5.Python代码 from aip import AipSpeech APP_ID = " ...

  6. Linux配置日志服务器

    title: Linux配置日志服务器 tags: linux, 日志服务器 --- Linux配置日志服务器 日志服务器配置文件:/etc/rsyslog.conf 服务器端: 服务器IP如下: 编 ...

  7. mysl 常用函数 union all if ifnull exists case when

    1.union all UNION 操作符用于合并两个或多个 SELECT 语句的结果集.请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 S ...

  8. Lua与C

    [前言] 对于Lua的基础总结总算告一段落了,从这篇博文开始,我们才真正的进入Lua的世界,一个无聊而又有趣的世界.来吧. Lua语言是一种嵌入式语言,它本身的威力有限:当Lua遇见了C,那它就展示了 ...

  9. 007_wireshark分析TCP的三次握手和四次断开

    要想进行抓包分析,必须先了解TCP的原理.这里介绍了TCP的建立连接的三次握手和断开连接的四次握手. 一.前言:介绍三次握手之前,先介绍TCP层的几个FLAGS字段,这个字段有如下的几种标示 SYN表 ...

  10. 【原创】Linux基础之上传下载

    1 rz sz 安装 yum install -y lrzsz 上传 rz ,对话框操作 下载 sz $filename 注意:rz不能上传大于4g的文件,此时可以改为scp或sftp上传,其中sft ...