4.C语言--操作符

发布时间:2026/9/27 14:29:07

4.C语言--操作符
一、基础算数操作符普通算数运算符 - * / %、-、* 常规加减乘/ 整数相除向下取整% 取模只能用于整数符合赋值运算符 - * / %先运算、再赋值简化代码写法。单目自增、自减 –分为前置、后置只需要一个操作数属于单目运算符。二、逻辑运算符 || 逻辑与全真才真有假则假|| 逻辑或全假才假有真则真具有短路特性 前面为假后面不执行|| 前面为真后面不执行三、移位操作符只针对整数移位操作符是操作二进制位的运算符只能用于整数类型。左移 规则左边高位丢弃右边低位补0效果等价于 ×2右移 分为两种逻辑右移左边补0右边丢弃算数右移左边补符号位右边丢弃口诀正数两种右移效果一致负数算数右移会向上取整效果等价于 ÷2复合移位赋值四、位操作符全部针对二进制位运算 按位与| 按位或^ 按位异或~ 按位取反按位与 两个二进制位都为1结果才为1按位或 |只要有一个是1结果就是1按位异或 ^相同为0不同为1经典公式a ^ a 00 ^ a a按位取反 ~所有二进制位 0变11变0五、不创建临时变量交换两个整数异或经典用法原理利用异或 a^a0 、 0^aaaa^b;ba^b;aa^b;实现无中间变量交换两数六、统计二进制中1的个数三种方法方法一取模右移法适合正数intmain(){intn0;scanf(%d,n);intcount0;while(n){if(n%21){count;}n1;}printf(%d,count);return0;}方法二按位遍历32位正负整数都适用intmain(){intn0;scanf(%d,n);intcount0;for(inti0;i32;i){if((n(1i))!0){count;}}printf(%d,count);return0;}方法三n (n-1) 清零法最优核心n (n-1) 消除二进制最后一个1intmain(){intn;scanf(%d,n);intcount0;while(n){count;nn(n-1);}printf(%d,count);return0;}七、逗号表达式语法 表达式1, 表达式2, 表达式3…规则从左到右依次执行整个逗号表达式结果 最后一个表达式结果八、下标访问操作符 []双目操作符需要两个操作数用法 数组[下标]九、函数调用操作符 ()可接收多个操作数函数名 () 实现调用十、操作符优先级与结合性规则单目运算符右结合赋值运算符右结合三目运算符右结合其余大多为左结合优先级决定谁先算结合性决定同级从哪边开始算。十一、表达式求值规则表达式求值顺序受三种因素影响优先级结合性类型转换整型提升CPU默认按int运算短字节类型需要整型提升无符号高位补0有符号高位补符号位寻常算数转换类型自动提升顺序由低类型自动向高类型转换intunsigned intlong intunsigned long intfloatdoublelong double运算时低精度向高精度靠拢保证精度不丢失。十二、总结C语言操作符是编程底层核心移位、位运算、整型提升、算数转换是考试、笔试高频考点。掌握位运算可以实现无变量交换数值快速统计二进制1的个数高效底层位操作是后期指针、底层开发、算法优化的基础。

相关新闻

如何高效使用yfinance:Python金融数据获取的实用指南

如何高效使用yfinance:Python金融数据获取的实用指南

2026/9/9 1:40:52

如何高效使用yfinance:Python金融数据获取的实用指南 【免费下载链接】yfinance Download market data from Yahoo! Finances API 项目地址: https://gitcode.com/GitHub_Trending/yf/yfinance 在Python金融数据分析领域,yfinance已经成为获取雅虎…

从SeleniumLibrary迁移到Robot Framework Browser Library:提升Web自动化测试效率与稳定性

从SeleniumLibrary迁移到Robot Framework Browser Library:提升Web自动化测试效率与稳定性

2026/8/23 1:26:36

1. 项目概述:为什么我们需要一个替代 SeleniumLibrary 的方案? 如果你和我一样,在自动化测试领域摸爬滚打了几年,尤其是在 Robot Framework 这个生态里,那么对 SeleniumLibrary 这个名字一定不会陌生。它几乎是 Robot…

Java后端面试7天冲刺:系统化复习八股文与场景题实战

Java后端面试7天冲刺:系统化复习八股文与场景题实战

2026/8/23 1:26:39

这次我们来看一个针对 Java 后端工程师的面试冲刺方案——“7天刷完面试所需的Java后端八股文”。这不是一个软件或模型,而是一套经过验证的高效学习路径和知识体系。对于正在求职或准备跳槽的 Java 开发者来说,最头疼的莫过于面对海量的面试题&#xff…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/26 19:14:12

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/27 1:30:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/27 1:30:37

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/27 1:30:35

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/27 1:30:34

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/26 16:36:51

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/26 14:29:04

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/26 13:57:22

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/26 23:35:16

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…