news 2026/5/1 9:50:58

c语言学习笔记(8)位运算符,++,--运算符的用法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
c语言学习笔记(8)位运算符,++,--运算符的用法

C语言学习笔记(8):位运算符、++、-- 运算符的用法

一、位运算符(Bitwise Operators)

C语言提供了6个位运算符,用于直接操作整数的二进制位(bit)。常用于底层编程、嵌入式、性能优化等场景。

运算符名称用法示例说明二进制示例(假设 a=5 (0101), b=3 (0011))
&按位与a & b对应位都为1才为1,否则为00101 & 0011 = 0001(1)
``按位或`ab`
^按位异或a ^ b对应位不同为1,相同为00101 ^ 0011 = 0110(6)
~按位取反~a所有位翻转(0变1,1变0)~0101 = 1010(补码表示-6)
<<左移a << n所有位向左移动n位,低位补00101 << 1 = 1010(10)
>>右移a >> n所有位向右移动n位(有符号数高位补符号位,无符号补0)0101 >> 1 = 0010(2)

实用技巧示例

  1. 判断奇偶数(比 %2 更快)

    if(num&1)printf("奇数");elseprintf("偶数");
  2. 交换两个数(不用临时变量)

    a^=b;b^=a;a^=b;
  3. 清除最低位的1(常用于位操作题)

    num=num&(num-1);// 例如 0100 & 0011 = 0000
  4. 获取最低位的1

    lowest_bit=num&-num;// 补码技巧
  5. 快速乘2 / 除2

    x=x<<1;// x *= 2x=x>>1;// x /= 2(无符号数或正数)
二、++ 和 – 运算符(自增自减)
运算符名称用法示例说明执行顺序与返回值
++自增++ii++将变量值加1前置++:先加后用,返回加后的值
后置++:先用后加,返回原值
--自减--ii--将变量值减1同上

关键区别:前置 vs 后置

inta=5;intb=++a;// 前置:a先加1变成6,然后b=6printf("a=%d, b=%d\n",a,b);// 输出 a=6, b=6intc=5;intd=c++;// 后置:先把c的原值5赋给d,然后c再加1printf("c=%d, d=%d\n",c,d);// 输出 c=6, d=5

常见陷阱(容易出错的代码)

inti=1;printf("%d\n",i+++++i);// 未定义行为!不同编译器结果不同(禁止这样写)intj=1;j=j++;// 未定义行为!结果不确定

正确使用建议

循环中的经典用法

for(inti=0;i<10;i++){// i++ 等价于 i = i + 1printf("%d ",i);}// 输出 0 1 2 ... 9
三、总结对比
运算符类型运算符优先级结合性常见用途
位运算~取反、位掩码
<< >>次高移位、快速乘除
&取特定位、清除位
^异或交换、校验
|设置位
自增自减++ –最高计数器、循环控制

学习建议

掌握这两部分,你对C语言的底层控制能力会大幅提升!下一节可以继续学习条件运算符和逗号运算符。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 5:42:49

python--数据结构--链表

最近会更新很多内容&#xff0c;感兴趣的友友支持一下吧&#xff01;&#xff01;一、链表介绍概述:属于线性结构, 即: 每个节点都有1个父节点(前驱节点) 和 1个子节点(后继节点)链表可以看做是 用链条(一根绳) 把节点连接起来的 一种结构.节点介绍(此处以 单链表举例):由 元素…

作者头像 李华
网站建设 2026/5/1 6:51:32

Python---多线程相关内容

最近会更新很多内容,感兴趣的友友点个关注,支持一下博主吧! 一、线程基本内容 概述: 线程是CPU调度资源的最基本单位, 进程是CPU分配资源的基本单位. 进程 = 可执行程序, 文件. 即: *.exe = 进程, 微信, QQ都是进程. 线程 = 进程的执行路径, 执行单元. 微信这个进程, 可以…

作者头像 李华
网站建设 2026/5/1 5:44:46

吐血推荐8个AI论文平台,助你轻松搞定本科毕业论文!

吐血推荐8个AI论文平台&#xff0c;助你轻松搞定本科毕业论文&#xff01; AI 工具助力论文写作&#xff0c;轻松应对学术挑战 对于正在撰写本科毕业论文的同学们来说&#xff0c;时间紧、任务重是常态。从选题到开题&#xff0c;再到撰写初稿和反复修改&#xff0c;每一个环节…

作者头像 李华
网站建设 2026/4/21 19:42:18

20260106_165519_大模型中的MCP、RAG、Agent定义及关系

MCP、RAG、Agent 是 LLM 应用架构的三大核心组件。 1、MCP&#xff08;Model Control Plane&#xff0c;模型控制平面&#xff09; 定义&#xff1a;管理 LLM 全生命周期的 “调度中枢”&#xff0c;负责模型选型、部署、负载均衡、版本控制、权限管理等。核心价值&#xff1…

作者头像 李华
网站建设 2026/5/1 7:54:06

深度学习毕设项目:基于python深度学习的手势识别数字

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华