当前位置: 首页 > news >正文

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.8 运算符

1.算术运算符

运算符名称备注
+加法运算符双目运算,a + b
-减法运算符双目运算,a - b
*乘法运算符双目运算,a * b
/除法运算符双目运算,a / b
%求余运算符双目运算, a % b
++自增运算符单目运算, a++
自减运算符单目运算, a–

2.关系运算符

运算符名称数学中的表示备注
>大于运算符>双目运算, a > b
<小于运算符<双目运算, a < b
>=大于等于运算符双目运算, a >= b
<=小于等于运算符双目运算, a <= b
==等于运算符=双目运算, a == b
!=不等于运算符双目运算, a != b
注: 关系运算符用于比较数据的大小,操作类型一般为整形数据。 关系运算符返回类型为布尔值(真或假,1或0),当关系式成立时为真,否则为假。 一般用于带布尔参数的运算语句,如if,while

3.逻辑运算符

运算符名称结合性对应数学中的名称备注
&&与运算符左结合双目运算, a && b,a和b同时为真,返回真,否则返回假
||或运算符左结合双目运算, a || b,a和b同时为假,返回假,否则返回真
!非运算符右结合单目运算, !a,a为真时,返回假,a为假时,返回真
注: 逻辑运算符用于计算逻辑表达式的值,操作类型一般为布尔值。 逻辑运算符返回类型为布尔值(真或假,1或0),一般用于带布尔参数的运算语句,如if,while

4.位运算符

运算符名称备注
&按位与双目运算, a & b,将a和b的每个二进制位进行与操作(同时为1,得1,否则为0)
|按位或双目运算, a | b,将a和b的每个二进制位进行或操作(同时为0,得0,否则为1)
^按位异或双目运算, a^b,将a和b的每个二进制位进行异或操作(值不同为1,值相同为0)
~按位取反单目运算, ~a,将a的每个二进制位进行取反操作(值为1时取0,值为0时取1)

5.赋值运算符

运算符名称结合性对应数学中的名称备注
=左结合双目运算, a && b,a和b同时为真,返回真,否则返回假
||或运算符左结合双目运算, a || b,a和b同时为假,返回假,否则返回真
!非运算符右结合单目运算, !a,a为真时,返回假,a为假时,返回真
注: 逻辑运算符用于计算逻辑表达式的值,操作类型一般为布尔值。 逻辑运算符返回类型为布尔值(真或假,1或0),一般用于带布尔参数的运算语句,如if,while

6.运算符优先级

优先级运算符名称或含义使用形式结合方向说明
1[]数组下标数组名[常量表达式]左到右
()圆括号(表达式)/函数名(形参表)
.成员选择(对象)对象.成员名
->成员选择(指针)对象指针->成员名
2-负号运算符-表达式右到左单目运算符
~按位取反运算符~表达式
++自增运算符++变量名/变量名++
自减运算符–变量名/变量名–
*取值运算符*指针变量
&取地址运算符&变量名
!逻辑非运算符!表达式
(类型)强制类型转换(数据类型)表达式
sizeof长度运算符sizeof(表达式)
3/表达式/表达式左到右双目运算符
*表达式*表达式
%余数(取模)整型表达式%整型表达式
4+表达式+表达式左到右双目运算符
-表达式-表达式
5<<左移变量<<表达式左到右双目运算符
>>右移变量>>表达式
6>大于表达式>表达式左到右双目运算符
>=大于等于表达式>=表达式
<小于表达式<表达式
<=小于等于表达式<=表达式
7==等于表达式==表达式左到右双目运算符
!=不等于表达式!= 表达式
8&按位与表达式&表达式左到右双目运算符
9^按位异或表达式^表达式左到右双目运算符
10|按位或表达式|表达式左到右双目运算符
11&&逻辑与表达式&&表达式左到右双目运算符
12||逻辑或表达式||表达式左到右双目运算符
13?:条件运算符表达式1? 表达式2: 表达式3右到左三目运算符
14=赋值运算符变量=表达式右到左
/=除后赋值变量/=表达式
*=乘后赋值变量*=表达式
%=取模后赋值变量%=表达式
+=加后赋值变量+=表达式
-=减后赋值变量-=表达式
<<=左移后赋值变量<<=表达式
>>=右移后赋值变量>>=表达式
&=按位与后赋值变量&=表达式
^=按位异或后赋值变量^=表达式
|=按位或后赋值变量|=表达式
15逗号运算符表达式,表达式,…左到右

相关文章:

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.8 运算符

1.算术运算符 运算符名称备注加法运算符双目运算&#xff0c;a b-减法运算符双目运算&#xff0c;a - b*乘法运算符双目运算&#xff0c;a * b/除法运算符双目运算&#xff0c;a / b%求余运算符双目运算, a % b自增运算符单目运算, a–自减运算符单目运算, a– 2.关系运算符…...

轮腿机器人的PID控制

1 PID介绍 PID&#xff08;Proportional Integral Derivative&#xff09;控制系统。其实质是根据输入的偏差值&#xff0c;按比例、积分、微分的函数关系进行运算&#xff0c;运算结果用以输出进行控制。它是在长期的工程实践中总结出来的一套控制方法&#xff0c;实际运行经…...

ChatGPT爆火,会给教育带来什么样的影响或者冲击?

近来&#xff0c;人工智能聊天机器人ChatGPT连上热搜&#xff0c;火爆全网。ChatGPT拥有强大的信息整合能力、自然语言处理能力&#xff0c;可谓是“上知天文&#xff0c;下知地理”&#xff0c;而且还能根据要求进行聊天、撰写文章等。 ChatGPT一经推出&#xff0c;便迅速在社…...

Servlet+JDBC实战开发书店项目讲解第三篇:商品查询实现

ServletJDBC实战开发书店项目讲解第三篇&#xff1a;商品查询实现 本篇博客将介绍如何在ServletJDBC实战开发书店项目中实现商品查询功能。我们将从设计数据库表结构和实体类开始&#xff0c;一步一步详细讲解代码实现过程&#xff0c;包括前端页面的设计和后端Servlet代码的编…...

爬虫逆向实战(十七)--某某丁简历登录

一、数据接口分析 主页地址&#xff1a;某某丁简历 1、抓包 通过抓包可以发现数据接口是submit 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以发现有一个enPassword加密参数 请求头是否加密&#xff1f; 通过查看请求头可以发现有一个To…...

《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言设计笔记,开源GPS车辆跟踪器,一键生成RTOS任务链表

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版&#xff1a; https://www.bilibili.com/video/BV1Cr4y1d7Mp/ 《安富莱嵌入式周报》第320期&#xff1a;键盘敲击…...

DRF 缓存

应用环境 django4.2.3 &#xff0c;python3.10 由于对于服务而言&#xff0c;有些数据查询起来比较费时&#xff0c;所以&#xff0c;对于有些数据&#xff0c;我们需要将其缓存。 最近做了一个服务&#xff0c;用的时 DRF 的架构&#xff0c;刚好涉及缓存&#xff0c;特此记…...

Collada .dae文件格式简明教程【3D】

当你从互联网下载 3D 模型时&#xff0c;可能会在格式列表中看到 .dae 格式。 它是什么&#xff1f; 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景。 1、Collada DAE概述 COLLADA是COLLAborative Design Activity&#xff08;中文&#xff1a;协作设计活动&#xff09…...

在K8s上处理nginx

基本说明 创建一个名为ssl的TLS类型的Secret对象&#xff0c;用于存储证书和密钥信息。 kubectl create secret tls ssl --certserver.crt --keyserver.key配置Nginx的events块&#xff0c;设置worker连接数为1024。 events {worker_connections 1024; }配置Nginx的http块&a…...

嵌入式:ARM Day4

一、自己编写代码实现三盏灯点亮 源码&#xff1a; .text .global _start _start: 进行一次初始化bl RCC_INITbl LED1_INITbl LED2_INITbl LED3_INITb looploop: 循环开关灯bl LED1_ONbl delay_1sbl LED1_OFFbl delay_1sbl LED2_ONbl delay_1sbl LED2_OFFbl delay_1sbl…...

SpringBoot案例-员工管理-分页条件查询

根据页面原型&#xff0c;明确需求 页面原型 需求 查看接口文档 接口文档的链接如下&#xff1a; 【腾讯文档】SpringBoot案例所需文档 https://docs.qq.com/doc/DUkRiTWVaUmFVck9N 思路分析 分页条件查询就时将条件查询的结果进行分页展示&#xff0c;由于有的条件可能设…...

python控制obs实现无缝切换场景!obs-websocket-py

前言 最近一直在研究孪生数字人wav2lip。目前成果可直接输入高清嘴型&#xff0c;2070显卡1分钟音频2.6分钟输出。在直播逻辑上可以做到1比1.3这样&#xff0c;所以现在开始研究直播。在逻辑上涉及到了无缝切换&#xff0c;看到csdn上有一篇文章还要vip解锁。。。那自己研究吧…...

Vue3实现图片懒加载及自定义懒加载指令

Vue3实现图片懒加载及自定义懒加载指令 前言1.使用vue3-lazyload插件2.自定义v-lazy懒加载指令2.1 使用VueUse2.2 使用IntersectionObserver 前言 图片懒加载是一种常见性能优化的方式&#xff0c;它只去加载可视区域图片&#xff0c;而不是在网页加载完毕后就立即加载所有图片…...

LeetCode150道面试经典题-- 环形链表(简单)

1.题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&…...

音视频学习-音视频基础

文章目录 一、 音视频录制原理二、音视频播放原理三、图像基础概念1.像素2.分辨率3.位深4.帧率5.码率6.Stride跨距 四、RGB、YUV1.RGB2.YUV1. 4:4:4格式2. 4:2:2格式3. 4:2:0格式4. 4:2:0数据格式对比 3.RGB和YUV的转换4.YUV Stride对齐问题 五、视频的主要概念1.基本概念2.I P…...

asp.net core webapi如何执行周期性任务

使用Api执行周期性任务 第一种&#xff0c;无图形化界面1.新建类&#xff0c;继承IJob&#xff0c;在实现的方法种书写需要周期性执行的事件。2.编写方法类&#xff0c;定义事件执行方式3.在启动方法中&#xff0c;进行设置&#xff0c;.net 6中在program.cs的Main方法中&#…...

快速搭建图书商城小程序的简易流程与优势

很多人喜欢阅读电子书&#xff0c;又有很多人依旧喜欢实体书&#xff0c;而实体书店拥有一个图书商城小程序便成为了满足用户需求的理想选择。如果您也想进入这一充满潜力的领域&#xff0c;但担心开发难度和复杂流程&#xff0c;别担心&#xff01;您能做到快速搭建一个专业、…...

C++ template 循环

在元编程循环中&#xff0c;我们不需要用while&#xff0c;for来循环&#xff0c;一般情况下都要用递归&#xff0c;例如&#xff1a; #include <iostream> using namespace std; template <int Head, int...Data> constexpr static int num Head num<Data..…...

时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 MATLAB实现基于…...

mysql 数据备份和恢复

操作系统&#xff1a;22.04.1-Ubuntu mysql 版本&#xff1a;8.033 binlog 介绍 binlog 是mysql 二进制日志 binary log的简称&#xff0c;可以简单理解为数据的修改记录。 需要开启binlog,才会产生文件&#xff0c;mysql 8.0 默认开启,开启后可以在 /var/lib/mysql &#xff…...

时间序列预测中的注意力剪枝技术:SPAT方法解析

1. 项目概述&#xff1a;当时间序列预测遇上注意力剪枝在多元时间序列预测领域&#xff0c;Transformer架构凭借其强大的注意力机制已成为主流解决方案。这种机制通过动态计算序列元素间的关联权重&#xff0c;能够有效捕捉电力负荷、交通流量等场景中的复杂时序模式。然而在实…...

谷歌DeepMind让AI学会“主动查资料“

这项由爱丁堡大学与谷歌DeepMind联合开展的研究&#xff0c;以预印本形式发布于2026年5月13日&#xff0c;论文编号为arXiv:2605.13050v1&#xff0c;有兴趣深入了解的读者可以通过该编号查询完整论文。**研究概要**假设你有一位助理&#xff0c;学识渊博&#xff0c;但所有知识…...

别再乱改usb_conf.h了!一文搞懂STM32 USB端点缓冲区PMA的分配原理

STM32 USB端点缓冲区PMA分配原理深度解析 第一次接触STM32 USB开发时&#xff0c;看到usb_conf.h里那些神秘的地址定义&#xff0c;你是否也曾一头雾水&#xff1f;为什么ENDP0_RXADDR有人设0x18&#xff0c;有人设0x40&#xff1f;这些数字背后隐藏着怎样的硬件机制&#xff1…...

39. UE5 GAS RPG:利用Motion Warping实现技能释放时的智能角色转向

1. Motion Warping插件基础与启用 Motion Warping是UE5官方提供的一个实验性插件&#xff0c;专门用于解决角色动画过程中的动态转向问题。这个插件的工作原理是在动画播放过程中插入一个"变形窗口"&#xff0c;允许开发者指定某个时间段内角色的朝向或位置变化。我刚…...

嵌入式开发者的串口工具选择题:minicom vs microcom,谁更适合你的Linux板卡?

嵌入式Linux串口工具深度对比&#xff1a;minicom与microcom的实战选型指南 在嵌入式Linux开发中&#xff0c;串口调试如同工程师的"听诊器"&#xff0c;是连接开发者与硬件设备的重要桥梁。面对资源受限的嵌入式环境&#xff0c;选择一款合适的串口工具往往能事半功…...

昇腾NPU算子开发进阶:深入理解ops-tensor中的解决方案注册机制 [特殊字符]

昇腾NPU算子开发进阶&#xff1a;深入理解ops-tensor中的解决方案注册机制 &#x1f680; 【免费下载链接】ops-tensor ops-tensor 是 CANN &#xff08;Compute Architecture for Neural Networks&#xff09;算子库中提供张量类计算的基础算子库&#xff0c;采用模块化设计&a…...

AMD Zen 5架构深度解析:从芯片设计到市场格局的算力突围

1. 项目概述&#xff1a;一场迟来的算力突围战最近几年&#xff0c;但凡关注高性能计算、人工智能或者游戏显卡的朋友&#xff0c;心里可能都憋着一股气&#xff1a;市场几乎被一家公司主导&#xff0c;无论是数据中心里训练大模型的GPU&#xff0c;还是我们电脑里的独立显卡&a…...

大模型应用开发:从需求分析到上线的全流程指南

一、需求分析&#xff1a;锚定测试视角下的开发方向对于软件测试从业者而言&#xff0c;大模型应用开发的需求分析阶段&#xff0c;核心是跳出传统功能测试的思维局限&#xff0c;从“验证功能正确性”转向“定义AI能力边界”。首先要明确业务场景的核心诉求&#xff0c;比如开…...

Perplexity学校信息检索终极手册:覆盖K12/高职/高校的12类典型场景+27个可复用Prompt模板

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity学校信息检索终极手册导论 在教育数字化加速演进的今天&#xff0c;高校师生亟需一种高效、可信且语义精准的信息获取方式。Perplexity 作为融合实时网络检索与大语言模型推理能力的智能问答平台&…...

One API 部署教程(下):使用指南

导读:前面两篇讲了本地和线上部署,现在 One API 已经跑起来了,接下来就是真正的使用环节! 理解核心概念 在开始之前,咱们先搞清楚几个关键概念,不然后面容易晕。 渠道(Channel):就是你的各个 AI 平台的 API Key。比如你有 DeepSeek 的 Key、OpenAI 的 Key、通义千问…...