单片机之从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.算术运算符 运算符名称备注加法运算符双目运算,a b-减法运算符双目运算,a - b*乘法运算符双目运算,a * b/除法运算符双目运算,a / b%求余运算符双目运算, a % b自增运算符单目运算, a–自减运算符单目运算, a– 2.关系运算符…...
轮腿机器人的PID控制
1 PID介绍 PID(Proportional Integral Derivative)控制系统。其实质是根据输入的偏差值,按比例、积分、微分的函数关系进行运算,运算结果用以输出进行控制。它是在长期的工程实践中总结出来的一套控制方法,实际运行经…...
ChatGPT爆火,会给教育带来什么样的影响或者冲击?
近来,人工智能聊天机器人ChatGPT连上热搜,火爆全网。ChatGPT拥有强大的信息整合能力、自然语言处理能力,可谓是“上知天文,下知地理”,而且还能根据要求进行聊天、撰写文章等。 ChatGPT一经推出,便迅速在社…...
Servlet+JDBC实战开发书店项目讲解第三篇:商品查询实现
ServletJDBC实战开发书店项目讲解第三篇:商品查询实现 本篇博客将介绍如何在ServletJDBC实战开发书店项目中实现商品查询功能。我们将从设计数据库表结构和实体类开始,一步一步详细讲解代码实现过程,包括前端页面的设计和后端Servlet代码的编…...
爬虫逆向实战(十七)--某某丁简历登录
一、数据接口分析 主页地址:某某丁简历 1、抓包 通过抓包可以发现数据接口是submit 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个enPassword加密参数 请求头是否加密? 通过查看请求头可以发现有一个To…...
《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言设计笔记,开源GPS车辆跟踪器,一键生成RTOS任务链表
周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1Cr4y1d7Mp/ 《安富莱嵌入式周报》第320期:键盘敲击…...
DRF 缓存
应用环境 django4.2.3 ,python3.10 由于对于服务而言,有些数据查询起来比较费时,所以,对于有些数据,我们需要将其缓存。 最近做了一个服务,用的时 DRF 的架构,刚好涉及缓存,特此记…...
Collada .dae文件格式简明教程【3D】
当你从互联网下载 3D 模型时,可能会在格式列表中看到 .dae 格式。 它是什么? 推荐:用 NSDT编辑器 快速搭建可编程3D场景。 1、Collada DAE概述 COLLADA是COLLAborative Design Activity(中文:协作设计活动)…...
在K8s上处理nginx
基本说明 创建一个名为ssl的TLS类型的Secret对象,用于存储证书和密钥信息。 kubectl create secret tls ssl --certserver.crt --keyserver.key配置Nginx的events块,设置worker连接数为1024。 events {worker_connections 1024; }配置Nginx的http块&a…...
嵌入式:ARM Day4
一、自己编写代码实现三盏灯点亮 源码: .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案例-员工管理-分页条件查询
根据页面原型,明确需求 页面原型 需求 查看接口文档 接口文档的链接如下: 【腾讯文档】SpringBoot案例所需文档 https://docs.qq.com/doc/DUkRiTWVaUmFVck9N 思路分析 分页条件查询就时将条件查询的结果进行分页展示,由于有的条件可能设…...
python控制obs实现无缝切换场景!obs-websocket-py
前言 最近一直在研究孪生数字人wav2lip。目前成果可直接输入高清嘴型,2070显卡1分钟音频2.6分钟输出。在直播逻辑上可以做到1比1.3这样,所以现在开始研究直播。在逻辑上涉及到了无缝切换,看到csdn上有一篇文章还要vip解锁。。。那自己研究吧…...
Vue3实现图片懒加载及自定义懒加载指令
Vue3实现图片懒加载及自定义懒加载指令 前言1.使用vue3-lazyload插件2.自定义v-lazy懒加载指令2.1 使用VueUse2.2 使用IntersectionObserver 前言 图片懒加载是一种常见性能优化的方式,它只去加载可视区域图片,而不是在网页加载完毕后就立即加载所有图片…...
LeetCode150道面试经典题-- 环形链表(简单)
1.题目 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 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执行周期性任务 第一种,无图形化界面1.新建类,继承IJob,在实现的方法种书写需要周期性执行的事件。2.编写方法类,定义事件执行方式3.在启动方法中,进行设置,.net 6中在program.cs的Main方法中&#…...
快速搭建图书商城小程序的简易流程与优势
很多人喜欢阅读电子书,又有很多人依旧喜欢实体书,而实体书店拥有一个图书商城小程序便成为了满足用户需求的理想选择。如果您也想进入这一充满潜力的领域,但担心开发难度和复杂流程,别担心!您能做到快速搭建一个专业、…...
C++ template 循环
在元编程循环中,我们不需要用while,for来循环,一般情况下都要用递归,例如: #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 数据备份和恢复
操作系统:22.04.1-Ubuntu mysql 版本:8.033 binlog 介绍 binlog 是mysql 二进制日志 binary log的简称,可以简单理解为数据的修改记录。 需要开启binlog,才会产生文件,mysql 8.0 默认开启,开启后可以在 /var/lib/mysql ÿ…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
Windows 下端口占用排查与释放全攻略
Windows 下端口占用排查与释放全攻略 在开发和运维过程中,经常会遇到端口被占用的问题(如 8080、3306 等常用端口)。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口,帮助你高效解决此类问题。 一、准…...
