第一个版本:

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

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

如果以开关开灯论:
有这样两个开关,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. .net异步委托

    委托Delegate是一个类,定义了方法的类型, 使得可以将方法当做另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大佬使用If-Else(Switch)语句,同时使得程序 ...

  2. 第四节:MVC中AOP思想的体现(四种过滤器)并结合项目案例说明过滤器的实际用法

    一. 简介 MVC中的过滤器可以说是MVC框架中的一种灵魂所在,它是MVC框架中AOP思想的具体体现,所以它以面向切面的形式无侵入式的作用于代码的业务逻辑,与业务逻辑代码分离,一经推出,广受开发者的喜 ...

  3. Richard Sabey于2004年给出了由123456789各出现一次的e的估计

  4. MySQL的一些基本命令笔记(4)

    delete 语句嵌套子查询: delete from 表名1 where 列名 操作符 (select 列名 from 表名2 where 条件); 示例: delete from customer ...

  5. [译]Ocelot - Load Balancer

    原文 可以对下游的服务进行负载均衡. 提供了下面几种负载均衡: LeastConnection - tracks which services are dealing with requests an ...

  6. Arduino-接口图

    Arduino开发板上数字输入输出引脚中的3.5.6.9和11都提供0V和5V之外的可变输出.在这些引脚的旁边,会标有PWM——脉冲宽度调制,PWM是英文“Pulse Width Modulation ...

  7. Django 内置分页器

    先导入Django内置的分页器 在商品列表页或者购物车列表页导入 在渲染list.html导入 然后在views后台渲染方法写入 打开list页面结果

  8. python 读写文件中 w与wt ; r与rt 的区别

    w,r,wt,rt都是python里面文件操作的模式.w是写模式,r是读模式.t是windows平台特有的所谓text mode(文本模式),区别在于会自动识别windows平台的换行符.类Unix平 ...

  9. Fast RCNN 中的 Hard Negative Mining

     Fast RCNN 中将与 groud truth 的 IoU 在 [0.1, 0.5) 之间标记为负例, [0, 0.1) 的 example 用于 hard negative mining. ...

  10. 10. linux输入子系统/input 设备【转】

    转自:https://www.cnblogs.com/crmn/articles/6696819.html 按键事件信息之上报绝对事件信息之上报相对事件信息之上报功能键驱动编写多点触控事件的上报 只产 ...