news 2026/6/22 17:29:25

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/6/17 4:12:35

Burp Suite插件 | AI连接本地工具、数据库或远程 Agent,辅助安全测试

工具介绍 BurpAgent 将大语言模型 (LLM) 和 MCP (Model Context Protocol) 引入 Burp Suite&#xff0c;使其能够连接本地工具、数据库或远程 Agent&#xff0c;辅助安全测试。工具功能 1. 流量分析 利用 GPT-4/DeepSeek 等模型对 HTTP 请求/响应进行分析。支持自定义 Prompt 模…

作者头像 李华
网站建设 2026/6/17 18:33:08

6.面向对象初级

类与对象的概述1.类的定义&#xff1a;类是抽象的概念的&#xff0c;代表一类事物&#xff08;比如人类&#xff0c;猫类&#xff09;&#xff0c;本质是一种数据类型&#xff0c;类将这一类对象所共有的属性和行为进行定义&#xff08;比如猫都有名字&#xff0c;颜色&#xf…

作者头像 李华
网站建设 2026/6/12 3:24:38

万字长文,全面解析“黑、骇、白、红”客:他们的技术与使命

黑客 起源 “黑客”一词是英文Hacker的音译。这个词早在莎士比亚时代就已存在了&#xff0c;但是人们第一次真正理解它时&#xff0c;却是在计算机问世之后。根据《牛津英语词典》解释&#xff0c;“hack”一词最早的意思是劈砍&#xff0c;而这个词意很容易使人联想到计算机…

作者头像 李华