逻辑与和按位与、逻辑或和按位或的区别

article/2025/8/22 21:37:57

首先分别明确一下他们各自的概念。

按位与和按位或

按位与和按位或都属于位操作符。

注意:位操作符的操作数必须是整数。

按位与“&”

按二进制位对应的位进行与运算,对应位都为1时,结果才为1

3&5
3的二进制:   00000000000000000000000011 //32位系统中
5的二进制:   00000000000000000000000101 //32位系统中
按位与的结果:00000000000000000000000001

代码验证

int main()
{int a = 3;int b = 5;int c = a&b;     printf("%d\n", c);return 0;
}

运行结果
在这里插入图片描述

按位或“|”

按二进制位对应的位进行或运算,对应位只要一个为1,结果就为1。

3|5
3的二进制:   00000000000000000000000011 //32位系统中
5的二进制:   00000000000000000000000101 //32位系统中
按位与的结果:00000000000000000000000111 

代码验证

int main()
{int a = 3;int b = 5;int c = a | b;printf("%d\n", c);return 0;
}

运行结果
在这里插入图片描述

逻辑与和逻辑或

逻辑与和逻辑或都是逻辑操作符。逻辑与和逻辑或关注的是操作符两边的表达式本身是真还是假。

C语言用整数表示逻辑真,用表示逻辑假。但在判断一个数据的时,却以非0为根据:如果为0,则判定为逻辑假;如果为非0,则判定为逻辑真

逻辑与“&&”

“&&”运算符两边的式子只有都是真,整个逻辑表达式的值才是真(即为1),否则整个逻辑表达式的值就是假(即为0)。

代码验证

int main()
{int a = 3;int b = 5;int c = a && b;printf("%d\n",c);return 0;
}

运行结果
在这里插入图片描述

逻辑或“||”

“||”运算符两边的式子只要一个式子为真,整个逻辑表达式的值就是真(即为1),否则整个逻辑表达式的值就是假(即为0)。

代码验证

//一真一假
int main()
{int a = 0;int b = 5;int c = a || b;printf("%d\n",c);return 0;
}

运行结果
在这里插入图片描述

//两个同时为假
int main()
{int a = 0;int b = 0;int c = a || b;printf("%d\n",c);return 0;
}

运行结果
在这里插入图片描述
题目:程序输出的结果是什么?

int main()
{int i = 0, a = 0, b = 2, c = 3, d = 4;i = a++ && ++b && d++;printf(" a=%d\n b=%d\n c=%d\n d=%d\n",a ,b ,c ,d);return 0;
}

运行结果
在这里插入图片描述
这里程序为什么输出的是这样一个结果呢?

逻辑与运算中操作符“&&”左边的式子只要为假(0)就不进行运算了。i = a++ && ++b && d++中。最左边的“a++”先参与运算后加加,a=0先参与逻辑或运算,因为操作符“&&”左边为0所以右边就停止计算。

逻辑与和按位与,逻辑或和按位或的区别

按位与和按位或是用二进制对应的位进行与和或运算,而逻辑与和逻辑或关注的是操作符两边的表达式本身是真还是假。

1&2----->0
1&&2---->11|2----->3
1||2---->1

http://chatgpt.dhexx.cn/article/lRVp7Pwb.shtml

相关文章

JS中的逻辑与和逻辑或

JS中的逻辑或||符号: 从字面上来说,只有前后都是 false 的时候才返回 false,否则返回 true。 console.log(5 > 6|| 6 > 5) //返回true5>6为false 但是 6>5为true 所以返回 true 总结:一真为真 特殊运算方法&#xff…

逻辑或( || )和逻辑与( )的关系

逻辑或,符号为“||”,只有操作数都是假,结果才是假。(全假才为假) 逻辑与,符号为“&&”,只有操作数都是真,结果才是真。(全真才为真) 如下图&#xf…

计算机逻辑与 或 非的表达式,计算机算数和,逻辑与,逻辑或,逻辑非分别是什么意思...

蔷祀的回答: 1、算术和:算术和就是所有的加数都是非负的(整数或0)得到的和。 2、逻辑与:逻辑与即1101 & 0100,就是按位相与,与的概念可以同俗的理解为,一个电路有两个串联的开关,只有同时关闭两个开关电路才通,打开任意一个开关电路都不通,所以那两个数逻辑与的结…

逻辑与(),逻辑或(||),and(),or(|)

一、背景、 这四个逻辑运算符,大家都知道,但是有时候会凌乱,再者就是我自己想写一点基础的东西,巩固一下自己,也算是一种笔记,不但自己会了,还可以分享给大家一起学习。 二、目的、 巩固自己…

逻辑同或,逻辑异或,逻辑与,逻辑或

一、逻辑异或 真⊕假真 假⊕真真 假⊕假假 真⊕真假 或者为: True ⊕ False True False ⊕ True True False ⊕ False False True ⊕ True False 二、逻辑同或 相同为一,不同为零。 三、逻辑与 1.逻辑与&& 表示逻辑与的意思&#xff0…

按位或与逻辑或的区别

按位或(|)和逻辑或(||)的区别:逻辑或:逻辑或是三种逻辑运算符之一。 逻辑或相当于生活中的或者,当两个条件中有任一个条件满足,逻辑或的运算结果就为真。按位或:按位或运…

Axure8.0 注册码

我的Axure升级到8.1.0.3382,使用最后一个可用的! 其他版本的小伙伴,请自行试验吧~ 升级了8.1.0.3377版本后,需要使用下面这组注册码 license:zdfans.com key:gP5uuK2gH iIVO3YFZwoKyxAdHpXRGNnZWN8Obn…

Axure下载安装-汉化-注册码

安装版本:8.1.0 一、下载、安装 链接:https://pan.baidu.com/s/1GbQKSn2aWnFOAkPsLITWQA 密码:qcf6 安装最后一步,不要点Run xxx 二、汉化 下载一个01053230.zip的压缩包,解压后把lang文件夹放到Axure的安装目录下…

RFID-RC522/STM32F103RB/KEIL5 简单实现读取卡片ID

文章目录 序章简单使用核心源码工程下载 序章 在这篇文章【 https://blog.csdn.net/qq_28877125/article/details/80437095 】的基础上修改完成! 简单使用 1).环境配置 MCU芯片型号:STM32F103RB开发板:理论任何STM32开发板KIDE&#xff1…

STM32CubeMX(13)——SPI时序读写RFID-RC522

SPI时序读写RFID-RC522 目录 STM32 Cubemax(十三) ——SPI时序读写RFID-RC522 前言 一、SPI时序通信 二、模块接线 三.Cubemax配置 四.核心代码 延时函数 写RC522寄存器 读RC522寄存器 复位RC522 使用代码 1.复位 2.寻卡并得到其序列号 总结 前言 用RFID来学习一…

基于STM32+RC522设计的门禁系统

一、项目背景 门禁系统是现代社会中非常重要的安全控制系统之一,其功能是在保障建筑物安全的同时,为合法用户提供便利。当前设计一种基于STM32+RC522的门禁系统设计方案,通过RFID-RC522模块实现了对用户卡的注册、识别及身份验证,通过控制SG90舵机实现门锁的开关,具有较高…

硬件速攻-RC522射频模块

介绍 RC522是一种射频识别(RFID)模块,用于读取和写入基于ISO/IEC 14443 A/MIFARE协议的13.56MHz RFID标签。该模块可以通过SPI接口与微控制器进行通信,并支持多达25个字节的数据传输。 RC522模块包括一个天线、收发器、调制解调…

基础篇010.3 STM32驱动RC522 RFID模块之三:STM32软件模拟SPI驱动RC522

目录 1. 实验硬件及原理图 2. 利用STM32CubeMX创建MDK工程 2.1 STM32CubeMX工程创建 2.2 配置调试方式 2.3 配置时钟电路 2.4 配置时钟 2.5 配置GPIO 2.6 配置串口 2.7 项目配置 3. MDK工程驱动代码调试 3.1 按键、LED程序 3.2 SPI软件模拟程序 3.3 RC522驱动程序…

[STM32] Stm32f103c8t6+RC522 实现读卡写卡功能(超详细,零基础,小白)

本篇文章内容总结下来就是 读卡 使用默认密码读卡所有扇区所有块的数据写ID 使用默认密码读取卡一的0扇区的第一块数据并写入到卡二的0扇区的第一块里密码读卡 不同厂家的初始密码不同,整理了一些默认密码,如果有收集到新的也可以补充进去写全卡 …

STM32/51单片机实训day4——RFID数据读取|RC522|串口数据收发、可模拟RFID (三) 仿真

目录 1 任务指导 2 实验步骤 3 串口调试 4 USART配置 5 fputs函数重写 内 容:能够读取RFID卡S50的ID——编程实现串口数据收发 学 时:3学时 知识点:电路图设计、USART配置 重点: USART配置 难点:USART配置 时间…

Arduino文档阅读笔记-RFID工作原理及RC522模块介绍

RFID工作原理 RFID(Radio Frequency Identification):无线射频识别 RFID由2个部分组成:应答器/标签被贴在某个物体上的东东。无线接收器用于读取应答器/标签上的数据。 读卡器由频射模块及高平磁场组成。Tag/应答器为待感应设备…

Arduino教程 RFID-RC522读IC卡门禁原理及破解防御

【文章特色:1、提出IC卡破解原理和简单有效的防御方法2、网上其他文章对于硬件如何接线说得模糊不清】 1、序言 先说下简单门禁系统的原理: (1)IC卡激活:门禁卡管理员将卡片放到读卡器、这时软件读取到IC卡的UID序列号信息(相当于身份证号…

51单片机驱动RC522模块

最近在某宝上买了一块RC522模块,试玩了下,读写卡正常。想学习使用新的东西时,有必要了解它的工作原理和工作过程,不清楚或者不知道的可以参考相关数据手册和参考文献,在这里为了节省自己的时间,我只对我的5…

基础篇010.1 STM32驱动RC522 RFID模块之一:基础知识

目录 1. RFID概述 1.1 RFID工作原理 1.2 RFID分类 1.3 RFID模块 1.4 RFID卡片 1.5 IC卡和ID卡介绍 1.6 IC卡和ID的区分 2. Mifare卡结构原理 2.1 Mifare卡概述 2.2 Mifare非接触式 IC 卡性能简介(M1) 2.2.1 Mifare S50与Mifare S70 2.2.2 S5…

RC522

该文为摘抄其他文章内容,主要为RC500书籍.pdf. 1. 通讯标准 1.1 RFID卡标准: 1.2 ISO/IEC 14443通讯标准: 2. 读写器 3. 卡 3.1 mifare 1卡 3.1.1 Mifare 1硬件结构: ① 射频接口:在 RF 射频接口电路中,包…