与(&)或()异或(^)–位运算详解腾讯云开发者社区

描述信息我已经尽量用比较好理解的方式修改,官方的实在是有点儿绕,寄希望下次看到的时候能立马想起来而不是再去理解一次

运算符

含义

描述(位运算,基于二进制表示)

示例

&

按位与

只有参与运算的两位均为1时,结果才为1,否则为0

a与b:$a&$b

|

按位或

只有参与运算的两位均为0时,结果才为0,否则为1

a或b:$a|$b

^

按位异或

只有参与运算的两位不同时,结果才为1,否则为0

a异或b:$a^$b

~

按位非(取反)

将用二进制表示的操作数中为1的位转为0,为0的为转为1

a非:~$a

<<

左移

将左边的操作数在内存中的二进制数据向左移动指定位数,右侧移空的位用0补齐

a左移4位:$a<<4

右移

将左边的操作数在内存中的二进制数据向右移动指定位数,左侧移空的位用0补齐

a右移4位:$a>>4

定义:

A=81(d)=01010001(b)

B=9(d)=00001001(b)

规则:0&0=0,0&1=0,1&0=0,1&1=1

A&B运算结果:1(d)=00000001(b)

规则:0|0=0,0|1=1,1|0=1,1|1=1

A|B运算结果:89(d)=01011001(b)

规则:0^0=0,0^1=1,1^0=1,1^1=0

A^B运算结果:88(d)=01011000(b)

规则:0->1,1->0

~A运算结果:-82(d)=10100110(b)

A<<2运算结果:324(d)=101000100(b)

注:橙色为补位码

A>>2运算结果:20(d)=00010100(b)

注:橙色为补位码,浅灰色为丢弃码

假设先在有一个数据表格如下

表结构

字段

类型

描述

id

int(6)

自增ID,学生编号

username

varchar(40)

学生姓名

userage

tinyint(3)

学生年龄

egstatus

学生英语考级状态(1-四级,2-六级,3-八级)

表数据

1

zhangsan

18

3

2

lisi

19

7

wangwu

先来说说“egstatus”这个字段的设计,它存储的是记录二进制数据第几位为真,且要求低位也必须为真,所以取值转换成十进制之后就变成了表数据中的情况,来看看为什么是1,3,7而不是1,2,3吧。

首先转换为二进制,可以看到1表示第一位为真,3表示第一二位均为真,7表示第一二三位均为真

1(d)=00000001

3(d)=00000011

7(d)=00000111

再看看我们的需求:判断用户英语考级状态

$eg=3;if($eg&1){#code...//1(d)=00000001(b)第一位为真}if($eg&2){#code...//2(d)=00000010(b)第二位为真}if($eg&4){#code...//4(d)=00000100(b)第三位为真}到这里,也许聪明的您应该已经想到了一些更巧妙的应用场景,如果本文对您有所帮助,还忘客观多多支持!

THE END
1.值类型取值范围与运算(&)或运算()非运算(~)异或运算(^本文详细介绍了机器数、真值的概念,以及原码、反码和补码的区别,特别强调了补码在解决负数运算中的优势。还涵盖了不同数据类型在计算机中的取值范围,并演示了位运算如与(&)、或(|)、非(~)和异或(^)的操作。最后讲解了位枚举在编程中的应用。 摘要由CSDN通过智能技术生成 https://blog.csdn.net/qq_45534015/article/details/115108736
2.与或非三种逻辑运算法则在计算机科学中,逻辑运算是一种重要的运算方式。而与、或、非三种逻辑运算就是最基础、最常见的三种运算。本文将详细介绍这三种逻辑运算的定义、真值表和规则。 1.与运算 1.1 定义 与运算(AND)是指当两个值都为真(或1)时,结果为真;否则结果为假(或0)。 1.2 真值表和规则 ABA AND B False False False https://www.eefocus.com/e/1552197.html
3.www.tup.tsinghua.edu.cn/upload/books/yz/090711逻辑运算符的操作元必须是boolean型数据,逻辑运算符可以用来连接关系表达式。表3.2给出了逻辑运算符的用法和含义。 表3.2逻辑运算符 运算符优先级用法含义结 合方向 && || !11 12 2op1&&op2 op1||op2 !op逻辑与 逻辑或 逻辑非从左到右 从左到右 从右到左 结果为boolean型的变量或表达式可以通过逻辑运算符http://www.tup.tsinghua.edu.cn/upload/books/yz/090711-01.txt
4.C:按位与按位或按位异或运算一、按位与 & 1.概念:参加运算的两个对象,按二进制位进行“与”运算,负数按补码形式参加按位与运算。2.规则 3.注意事项和用途注意:负数按补码形式参加按位与运算用途: 清https://www.jianshu.com/p/c70af2c9af79
5.什么叫与或非门怎么运算与门什么叫与或非门怎么运算与门 -- "AND" 运算,逻辑乘。 1*1=1 1*0=0或门 -- “OR" 运算,逻辑加。 1&1=0 1&0=1 0&0=0非门 -- “NOT" 运算,逻辑非,[真变假,假变真!1=0 !0=1我后面http://zybang.com/question/0783f47f5aeda8a142ddbab90e4434cf.html
6.与或非运算公式与或非运算公式孤单蝴蝶影 2020-06-22 11:25:07 与的运算公式是:1and1=1,1and0=0,0and1=0,0and0=0。非的运算公式是:not1=0,not0=1。逻辑运算又称布尔运算,布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。用等式表示判断,把推理看作等式的变换。这种变换的有效性不依赖人们对符号的解释,只依赖于https://edu.iask.sina.com.cn/bdjx/6j9zW8IorIT.html
7.计算机考点基本逻辑运算"与"运算又称逻辑乘,用符号"."或"∧"来表示。运算规则如下: 0∧0 = 0 0∧1 = 0 1∧0 = 0 1∧1 = 1 即当两个参与运算的数中有一个数为0,则运算结果为0,都为1结果为1 2."或"运算(OR) "或"运算又称逻辑加,用符号"+"或"∨"表示。运算规则如下: https://xue.baidu.com/okam/pages/strategy-tp/index?strategyId=134143511553552&source=natural
8.逻辑运算符(与或非,位运算)&&:与(逻辑与操作,表示并且的意思,AND&&: 与(逻辑与操作,表示并且的意思,AND,表示只有当两个或多个条件都同时满足的情况下,结果才为真。) ||:或(逻辑或,或者的意思,or。 对于多个条件,只要有一个满足条件,结果就为真,只有所有的条件都为假的时候,结果才为假。) &&可以对真值和假值进行运算,如https://juejin.cn/post/6844903905705345031
9.C语言基础知识笔记1逻辑运算的值也是有两种分别为“真”和“假”,C语言中用整型的1和0来表示。其求值规则如下: 1) 与运算(&&) 参与运算的两个变量都为真时,结果才为真,否则为假。例如:5>=5 && 7>5 ,运算结果为真; 2) 或运算(||) 参与运算的两个变量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如https://www.imooc.com/article/23511
10.与或非逻辑运算梳理运算符“与”运算: \cap=\cdot\ ;“或”运算: \cup=+ 。“与”运算号可省略不写,即 A\cdot B=AB 。操作符“非”操作: -= eg=\overline{\phantom{a}} 。即 -A= eg A=\overline{A} 。常用运算律0)自运算律(显…https://zhuanlan.zhihu.com/p/385755926