单片机C语言中&和&&运算符的差异性验证

51单片机系列知识15--HD7279(1) HD7279--串行接口8位LED数码管及64键键盘职能控制芯片   HD7279A是一片具有串行接口的,可同时驱动8位共阴极数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可以连接多达64健的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。 HD7279内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式,还具有多种控制指令,如消隐、闪烁、左移、 阅读详情

今天在编写单片机程序时,错误将算术运算符&写成了逻辑运算符&&,结果导致程序出现错误。于是就认真的再次学习了一下&和&&这两种运算符到底有什么区别。

实例演示

先用一个简单的例子来看看这两种运算符的运算结果是什么?

图一是为了验证这两种运算符的区别而特意写的程序,图二是程序运行结果。

单片机C语言中&和&&运算符的差异性验证

图一 演示程序

单片机C语言中&和&&运算符的差异性验证

图二 运算结果

从运算结果就可以看出,算术运算符&执行的结果得到的是一个具体的数值,而逻辑运算符执行的结果是0或者1。

运算说明

算术运算符&运算的时候是将运算符两侧的数先转换成二进制,然后进行“按位与”操作。

逻辑运算符&&运算的时候是判断运算符两侧的数是不是都为“真”,只有都为真,结果才是“真”,也就是结果是1,否则只要两个操作数有一个为“假“,那么得到的结果就是“假”,也就是结果为0。

详细解释

&,是算术运算符,同时也是一个双目运算符:运算时将两个表达式的值按二进制位展开,对应的位(bit)按值进行“与”运算,结果保留在该位上…

比如上面例子中的0x40&0x59

转换成二进制后的运算就是

0100 0000

&0101 1001

=0100 0000=0x40

每一对应位只要有一个值为0结果为0,否则结果为1。

如果两数位数不同,则较短数高位补零,再运算,比如char a=100;int b=260;

a&b实际是0000 0000 0110 0100&0000 0001 0000 0100.其结果为int型0000 0000 000 0100即4…

&&:逻辑运算符,同时也是一个双目运算符,计算两个表达式同时成立的“真值”(同时成立真值为真否则为假)

逻辑真值有两种,1为真,0为假,但在运算时用非零表示真,0表示假…

即:数值->逻辑真值--非0为真,0为假/逻辑真值->数值--真为1,假为0…

例如:char a=1,b=0,c=-1;那么a真b假c真。a&&b和c&&b为假值为0,a&&c为真值为1

【matlab】使用alexnet进行特征提取 1.下载alexnet工具箱 在命令栏输入alexnet,若不报错说明已经安装,若出现错误按照提示去下载工具箱; 下载地址:https://ww2.mathworks.cn/matlabcentral/fileexchange/59133-deep-learning-toolbox-model-for-alexnet-network (1)需要先注册(十分简单),登陆,下载; (2)下载完成之后,... 阅读详情

相关推荐

PowerBuilder 9 遗留系统逆向实战:3款反编译工具对比与关键DLL破解

本文深入探讨了PowerBuilder 9遗留系统的逆向工程实战,对比分析了PBKiller、PB DeCompiler和Shudepb三款反编译工具的核心功能与适用场景,并详细解析了关键DLL破解技术。通过IDA和OllyDbg等工具的应用,提供了从静态解构到动态追踪的完整逆向方法论,帮助开发者有效维护老旧PB系统。

cucanqi9387的博客 737

单片机C语言“&=~“与“|=“的使用

&表示“与”,~表示“取反”,|表示“或”。"&=~" 与 "|="的使用。

m0_52596850的博客 3164

基于UCD3138的数字控制硬开关全桥DC-DC电源设计实战解析

在开关电源设计中,数字控制技术正逐步取代传统模拟方案,以其卓越的灵活性、可编程性和强大的数据处理能力,成为应对复杂动态响应与智能化需求的关键。其核心原理在于通过高精度模数转换器(ADC)实时采样电压、电流信号,经由数字信号处理器(如ARM内核)运行PID等控制算法,动态调整数字脉宽调制(DPWM)输出,从而实现对功率级的精确控制。这种技术价值体现在能够轻松实现高级算法(如输入电压前馈、非线性补偿)、灵活配置保护参数,并通过PMBus等接口实现智能化监控与管理。其典型应用场景包括通信基站、服务器电源以及工业设

701

C语言中的&与&&的区别

&:按位与 &&:逻辑与 这两个很多人用起来感觉都没什么区别,都能达到自己想要的效果,但这两者还是有区别的,而且区别很大,不废话了,看例子: 这两个程序的唯一差别就是 & 和 && ,但是最后输出的b的值却不一样,为什么呢。 我们先看 & :b输出的值为3,说明这个程序运行到了&右边括号里的b++...

qq_42261354的博客 2万+

51单片机初学者常用运算符

51单片机新手常用的几种运算符:1.逻辑运算。2.位运算符。3.以及“intrins.h”常用的函数

qq3400742771的博客 5350

core_analyzer分析c++程序内存占用

环境:centos; 进程:单进程多线程c++程序; 问题:1. 分析系统内存占用; 2. 分析ptmalloc内存空洞(bins上的空闲chunk的大小); 包括:1. 占用了很大内存的c++进程; 2. gcore(在进程不core dump的情况下生成core文件); 3. core_analyzer(分析gcor...

weixin_41644391的博客 4045

STM32学习笔记&和&&的区别

STM32小白学习笔记--&和&&的区别&和&&1、&2、&& &和&& &和&&在Java和PHP以及c#中都是逻辑操作符,也叫条件操作符 1、& 在能确定表达式结果为真或假时,&仍然计算,不管前面的条件是否正确,后面都执行。 2、&& &&运算符也称短路运算,只要前面条件不成立就停止执行 ...

qq_18744449的博客 4596

二元交叉熵:分类模型概率校准的数学根基

二元交叉熵(BCE)是二分类任务中实现概率校准的核心损失函数,其本质源于最大似然估计与KL散度,确保模型输出具备真实可解释的概率意义。相比均方误差(MSE)或Hinge Loss,BCE强制优化预测分布与真实伯努利分布之间的信息差异,使p=0.8真正对应约80%的正例发生率,支撑风控、医疗、推荐等高信度场景的阈值决策。它不只影响训练收敛,更决定部署后概率的业务可信度——这正是Focal Loss等变体无法替代其基础地位的根本原因。理解BCE,就是理解分类模型如何从‘打分器’进化为‘概率契约签署者’。

congli3478的博客 693

说说&和&&的区别

&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。 &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&

Java 4256

51单片机c语言运算符大全,单片机C语言中&和&&运算符的差异性验证

单片机C语言中&和&&运算符的差异性验证[复制链接]此内容由EEWORLD论坛网友tiankai001原创,如需转载或用于商业用途需征得作者同意并注明出处今天在编写单片机程序时,错误将算术运算符&写成了逻辑运算符&&,结果导致程序出现错误。于是就认真的再次学习了一下&和&&这两种运算符到底有什么区别。实例演示先用一个简单的例子...

weixin_36261385的博客 2564

人工智能入门系列之一: 鸢尾花(Iris)多分类的神经网络详解及代码实现

这是最好的时代,我们一起来打造属于自动驾驶汽车上路、无人机飞天、智能机器人管工厂的AI未来 人工智能领域分化为两个阵营:其一是规则式(rule-based)方法,在人工智能早期占主峰;其二是神经网络(neural network)方法,后起之秀。随着硬件水平的提高,算力的指数式增长;人工智能的重心已经从规则式的专家时代转移到神经网络的数据时代。 “神经网络”不选择把人脑熟稔的逻辑规则传授给计算机...

NLP家的码奴小荷的博客 2万+

单片机c语言字符串对比问题,单片机C语言中&和&&运算符的差异性验证 - tiankai001的日志 - 电子工程世界-论坛...

此内容由EEWORLD论坛网友tiankai001原创,如需转载或用于商业用途需征得作者同意并注明出处今天在编写单片机程序时,错误将算术运算符&写成了逻辑运算符&&,结果导致程序出现错误。于是就认真的再次学习了一下&和&&这两种运算符到底有什么区别。实例演示先用一个简单的例子来看看这两种运算符的运算结果是什么?图一是为了验证这两种运算符的区别而特意写...

weixin_29322049的博客 301

Genesis物理引擎实战指南:轻量级确定性刚体仿真核心

刚体物理仿真作为机器人控制、嵌入式运动学验证和确定性游戏开发的基础技术,其核心在于数值稳定性、跨平台可复现性与约束求解精度。本文围绕线性互补问题(LCP)求解、半隐式欧拉积分和零依赖C++实现三大关键技术展开,解析如何在无GUI、低算力环境下构建可单步调试、帧级可控的确定性仿真系统。重点覆盖碰撞检测数学建模、关节局部坐标系绑定、质量-惯性张量一致性校验等工程落地关键点,适用于STM32、树莓派及教育实验场景。内容深度结合Genesis Physics Engine的源码实践,直击‘穿模’‘NaN’‘关节发软

ciya3282的博客 782

C语言期末核心考点与避坑指南:从指针内存到文件操作实战解析

在计算机编程领域,内存管理和指针操作是理解底层系统运行机制的核心概念。指针作为内存地址的引用,其本质是实现了对数据的间接访问,这一原理构成了C语言高效性和灵活性的基础。掌握指针与数组、结构体的结合使用,以及动态内存分配(malloc/free),对于构建复杂数据结构和实现资源高效管理具有重要技术价值。这些技术广泛应用于系统编程、嵌入式开发、算法实现等场景,是衡量程序员对计算机体系结构理解深度的重要标尺。本文聚焦C语言期末复习,针对指针、数组、字符串、内存管理等高频易错点,结合典型算法和文件操作,提供系统化的

weixin_34209851的博客 478

单片机C语言零基础入门05 - 逻辑运算

硬件家园单片机C语言零基础入门资料汇总链接: https://mp.weixin.qq.com/s/hMTreNUX_V90461tvALjJA ​ 一、逻辑与或非 基础理论: 逻辑与或非,运算对象是布尔值(1或0,真或假),类似于数字电路的与门,或门,非门。与关系运算符配合,一般用于选择语句与循环语句中 1、逻辑与 符号为&&。 参与运算的两个表达式都为真时,结果才为真,否则为假。 例如: uint8_t a = 3,b=5; if((a3) && (b5)) {执行};

硬件家园 3682

离心泵级间导叶的设计计算

离心泵级间导叶的设计计算高速离心泵级间流道的作用是将第一级复合叶轮流出的高速液流收集起来并送入第二级复合叶轮。级间流道的设计应考虑降低液体的流速,实现动能向压力能转化,减小液体的水力损失。级间流道主要有蜗壳形流道和导叶两种结构形...

cqzc55322的博客 2013

单片机中&=~和|=的用法和意义

学习记录

qq_60845288的博客 7855

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

51单片机c语言运算符大全,编程高手写给小白的文章-C语言运算符

1. 算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算, %)、自增(++)、自减(--)共七种。2. 关系运算符:用于比较运算。包括大于(>)、小于(=)、小于等于(<=)和不等于(!=)六种。3. 逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。4. 位操作运算符:参与运算的量,按二进制位进行运算。包括位...

weixin_34837388的博客 4326

单片机 - 位运算详解(`&`、`|`、`~`、`^`、`>>`、`<<`)

位运算是单片机编程(C/C++)中经常使用的技巧,用于高效地操作寄存器、I/O 端口和数据。以下是各位运算符的详细解析,并结合单片机实际应用举例。端口连接了 LED,我们要点亮 LED(假设 LED 连接在 P2 的第 2 位)。代表某个 I/O 端口,我们想要清除 P1 端口的第 3 位(保留其他位不变)。是否相等(所有位均相同)。

欢迎来到Petter_Deng的博客 3397

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

在单片机中C51的关系与&&和位&的区别??

[侃单片机] 主题:在单片机中C51的关系与&&和位&的区别??   在单片机中C51的关系与&&和位&的区别?? 单片机 在单片机中C51的关系与&&和位&的区别?? 比如在a=1111 1110         b=1111 1111 如果我在KIEL中写:c=a&&b  c=0000 0001   (这个怎么会是这种2进制呢??)

企划分析团 2945

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C语言关于&与&&运算符

当两个数值进行"&"运算时,它会分别比较这两个数值的二进制表示中的每一位,只有当两位都为1时,结果中的对应位才为1,否则为0。例如,假设我们有两个整数5和3,它们的二进制表示分别为101和011,那么"&"运算的结果为001,即整数1。例如,假设我们有两个表达式expr1和expr2,如果expr1和expr2都为真,则"expr1 && expr2"的结果为真,否则为假。这意味着,如果左侧的表达式为假,那么不会计算右侧的表达式,因为无论右侧的表达式为何值,整个"&&"运算的结果都为假。

高性价比服务器就选:蓝易云 2638

| || & && 的区别?

||(短路或):当左边的表达式为true时,程序会停止执行右边的表达式,结果仍是true。两边同时为true时,结果才为true。两边有一边为true时,结果为true,两边同时为false时,结果才为false。1) &(逻辑与):当左边的表达式为false的时候,程序还是会执行右边的表达式,再得出false结果。2)&&(短路与):当左边的表达式为false时,程序会停止执行右边的表达式,结果仍是false。1) |(逻辑或):左边的表达式为true的时候,程序。只有1与1为真 其余全为假。

qq_42435238的博客 1389

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

&与&&的区别

一、&与&&的区别: &有两种用法:1、按位与;2、逻辑与。 **&&运算符是短路与运算(短路原则、一假必假)。**逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true 整个表达式的值才是 true。 &&之所以称为短路运算是因为,如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&。 使用区别: &&

weixin_42449408的博客 1334

&和丨c语言运算符号理解(单片机学习)

&和丨c语言运算符号理解(单片机学习) a&0x80 a丨0x80 丨是按位或运算 & 是按位与运算 ox表示十六进制数 关于按位与运算,先要将其他的进制数转化为二进制数, 然后计算ox80转化为二进制就是10000000 比如a是十进制数15,转化为二进制数就是00001111 10000000上下比较没有相同的位,结果就为0 同样a丨0x80结果为10001111 结果为ox8F ...

adsaadsad的博客 2987

FFT算法在单片机中的使用&&L…

原文地址:FFT算法在单片机中的使用&&LCD12864驱动作者:元大帝  好久没更新博客了,觉得对不起自己建立博客的初衷。我这个人太懒了,又没有坚持下去的决心,唉~     言归正传,本次创新基金我是要做一个简易的频谱仪,核心就是要进行一个FFT运算。大家知道,如果采用DSP芯片效果那是相当好的。但由于项目资金以及时间不够等情况,我采用的是ATMEL公司的AVR单片机,这款单片机的FLASH存储

effort0806222的博客 6365
上一篇: 基于proteus的51单片机仿真实例八十、模数转换器ADC0832应用实例
老马识途单片机
博客等级 码龄19年 931粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值