C语言操作符详解
栏目:广告资讯 发布时间:2025-10-22
操作符详解(上)1.操作符的分类•算术操作符:+、-、*、/、%•移位操作符:>•位操作符:&|^•赋值操作符:=、+=、-=、*=、/=、%=、=、&=、|=、^=*•单⽬操作符:!、++、–、&、、+、-、~、sizeof、(类型)•关系操作符:>、>=、

操作符详解(上)

1.操作符的分类

• 算术操作符: + 、- 、* 、/ 、%

移位操作符:>

• 位操作符:& | ^

• 赋值操作符:= 、+= 、 -= 、 *= 、 /= 、%= 、>= 、&= 、|= 、^= *

• 单⽬操作符: !、++、–、&、、+、-、~ 、sizeof、(类型)

• 关系操作符:> 、>= 、

• 逻辑操作符: && 、||

• 条件操作符: ? :

• 逗号表达式: ,

• 下标引⽤: []

• 函数调⽤: ()

• 结构成员访问: . 、->

上述的操作符,我们已经讲过算术操作符、赋值操作符、逻辑操作符、条件操作符和部分的单⽬操作 符,今天继续介绍⼀部分,操作符中有⼀些操作符和⼆进制有关系,我们先铺垫⼀下⼆进制的和进制 转换的知识。

2.⼆进制和进制转换

其实我们经常能听到 2进制、8进制、10进制、16进制 这样的讲法,那是什么意思呢? 其实2进制、8进制、10进制、16进制是数值的不同表⽰形式⽽已。 ⽐如:数值15的各种进制的表⽰形式:

15的2进制:1111 15的8进制:17 15的10进制:15 15的16进制:F//16进制的数值之前写:0x //8进制的数值之前写:0 

我们重点介绍⼀下⼆进制: ⾸先我们还是得从10进制讲起,其实10进制是我们⽣活中经常使⽤的,我们已经形成了很多常识:

• 10进制中满10进1

• 10进制的数字每⼀位都是0~9的数字组成 其实⼆进制也是⼀样的 • 2进制中满2进1

• 2进制的数字每⼀位都是0~1的数字组成 那么 1101 就是⼆进制的数字了。

2.1 2进制转10进制

其实10进制的123表⽰的值是⼀百⼆⼗三,为什么是这个值呢?其实10进制的每⼀位是有权重的,10 进制的数字从右向左是个位、⼗位、百位…,分别每⼀位的权重是10 , 10 , 10 …

在这里插入图片描述

2进制和10进制是类似的,只不过2进制的每⼀位的权重,从右向左是:2 , 2 , 2 … 0 1 2 如果是2进制的1101,该怎么理解呢?

在这里插入图片描述
2.1.1 10进制转2进制数字
在这里插入图片描述
2.2 2进制转8进制和16进制
2.2.1 2进制转8进制

8进制的数字每⼀位是07的,07的数字,各⾃写成2进制,最多有3个2进制位就⾜够了,⽐如7的⼆ 进制是111,所以在2进制转8进制数的时候,从2进制序列中右边低位开始向左每3个2进制位会换算⼀ 个8进制位,剩余不够3个2进制位的直接换算。 如:2进制的01101011,换成8进制:0153,0开头的数字,会被当做8进制。

在这里插入图片描述
2.2.2 2进制转16进制

16进制的数字每⼀位是09,af的,09,af的数字,各⾃写成2进制,最多有4个2进制位就⾜够了, ⽐如f的⼆进制是1111,所以在2进制转16进制数的时候,从2进制序列中右边低位开始向左每4个2进 制位会换算⼀个16进制位,剩余不够4个⼆进制位的直接换算。 如:2进制的01101011,换成16进制:0x6b,16进制表⽰的时候前⾯加0x

在这里插入图片描述

3.原码、反码、补码

概念

整数的2进制表⽰⽅法有三种,即原码、反码和补码 有符号整数的三种表⽰⽅法均有符号位和数值位两部分,2进制序列中,最⾼位的1位是被当做符号 位,剩余的都是数值位。 符号位都是⽤0表⽰“正”,⽤1表⽰“负”。

在这里插入图片描述

正整数的原、反、补码都相同。

负整数的三种表⽰⽅法各不相同。

原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。

反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。

补码:反码+1就得到补码。 补码得到原码也是可以使⽤:取反,+1的操作。

无符号整数的三种 2 进制表⽰相同,没有符号位,每⼀位都是数值位。

在这里插入图片描述

对于整形来说:数据存放内存中其实存放的是补码。

因为在计算机系统中,数值⼀律⽤补码来表⽰和存储。原因在于,使⽤补码,可以将符号位和数值域统⼀ 处理;同时,加法和减法也可以统⼀处理(CPU只有加法器)此外,补码与原码相互转换,其运算 过程是相同的,不需要额外的硬件电路。

int main(){int a = -10;//-10是存放在a中,a是整型变量,是4个字节,32bit位//10000000000000000000000000001010 - 原码//11111111111111111111111111110101 - 反码//11111111111111111111111111110110 - 补码//int b = 10;//00000000000000000000000000001010 - 原码       //00000000000000000000000000001010 - 反码//00000000000000000000000000001010 - 补码    return 0;}
-1的原码 反码 补码
-1100000000000000000000000000000011111111111111111111111111111111011111111111111111111111111111111  -- -1的补码

4.移位操作符

>>右移操作符

注:移位操作符的操作数只能是整数。

4.1 左移操作符

移位规则:左边抛弃、右边补0

#include int main(){ int num = 10; int n = num << 1; printf("n = %d\n", n); printf("num = %d\n", num); return 0;}
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.2 右移操作符

移位规则:⾸先右移运算分两种:

1.逻辑右移:左边⽤0填充,右边丢弃

2.算术右移:左边⽤原该值的符号位填充,右边丢弃

右移操作符是逻辑右移还是算术右移取决于编译器,常见的编译器都是算术右移

#include  int main() { int num = 10;     int n = num >> 1; printf("n = %d\n", n); printf("num = %d\n", num); return 0;}

逻辑右移

在这里插入图片描述

)

算术右移

在这里插入图片描述

警告⚠⚠:对于移位运算符,不要移动负数位,这个是标准未定义的。

5.位操作符:&、|、^、~

位操作符有:

&//按位(二进制)与|//按位或^//按位异或~//按位取反

注:他们的操作数必须是整数。

#include int main(){ int num1 = -3; int num2 = 5; printf("%d\n", num1 & num2); printf("%d\n", num1 | num2); printf("%d\n", num1 ^ num2); printf("%d\n", ~0); return 0//  //00000000000000000000000000000011 3的补码////10000000000000000000000000000101 -5的原码////11111111111111111111111111111010 -5的反码////11111111111111111111111111111011 -5的补码////00000000000000000000000000000011////11111111111111111111111111111011////00000000000000000000000000000011 -补码;}

按位与两个都是1才是1.否则为0

按位异或是相同为0;相异为1

按位或是有一个1就是1

按位取反则0变1,1变0


# 都是  # 他们的  # 值域  # 的是  # 相异  # 最多  # 三种  # 原码  # 插入图片  # c语言  # 在这里  # 位运算符  # 运算符  # 为什么  # ai  # 字节  # 计算机 


相关文章: 软银砸40亿美元买下DigitalBridge! 孙正义押注下个世代AI资料中心  OPPO杨宁:6G时代智能手机仍是核心终端,AI智能体将重塑连接生态  《幻想生活i》免费DLC上线 更新新区域与大量内容  瑞幸“半杯冰”惹众怒!蜜雪冰城捅上第一刀  华硕终于发布RTX 5090D v2显卡!OC版已正式上架:19999元  吴晓波展示荣耀ROBOT PHONE真机:世界上第一款手机机器人!  辉达依9月协议入股英特尔 斥资50亿美元取得逾2亿股  无脑提高难度不是魂游!宫崎英高谈魂游核心设计理念  《底特律:变人》玩家同时在线峰值创新高 拜史低促销所赐  2026年国内折叠屏手机销量预计猛增45% 苹果立大功?  姬小爻高端定制电脑:以定制与服务,成就你的专属信仰  2999元起 OPPO Reno15新配色星星粉开售 行业首发星闪光栅工艺  米OV耀四大折叠屏将标配2亿像素镜头 主摄长焦都有  内存严重缺货:厂商开始挑客户!四家PC大厂优先供应 其他靠边站  GStreamer 1.26.10 发布,开源多媒体框架  紧跟时事!《逃离鸭科夫》更新:硬盘涨价 可攻击杰夫  智元发布 Act2Goal 方案:世界模型让机器人真正懂得如何达成目标  跳票小萝莉"扭秧歌" 《识质存在》戴安娜新动作展示  童年回归!《永劫无间》x《黑猫警长》联动现已开启  微语 1.1.0 发布,开源智能客服  特斯拉“车顶维权”女车主被申请限制高消费,曾被判赔偿超 17 万元  内存短缺!DDR4复活:三星计划推迟其停产周期  没有一颗进口芯片,中核集团实现核电厂“神经中枢”100% 国产化  内存涨价成暴利产业 传三星祭出霸王条款:想拿货就得听他的  深度复盘鸿蒙版微信这一年:2025 年,我们在鸿蒙上重新认识微信  Steam大奖提名,版本“亲临噩梦”上线,《消逝的光芒:困兽》迎来入坑最佳时机  蚂蚁阿福:问答结果无广告及商业排名  乐视出《甄嬛传》周边被丑拒:“这是如花?”  小米&ldquo;Ultra&rdquo;系列演进图谱:每代旗舰背后的核心突破  OpenAI 正在内部测试 ChatGPT “Skills” 功能  台积电 2 纳米 (N2) 技术已如期于 2025 年第四季开始量产  AI重构声音美学,爱畅音响荣获钛媒体大奖,领跑端侧AI音频新赛道  Andrej Karpathy 的焦虑:作为一名程序员,我从未感到如此落后  腐竹FM|沉浸式广播剧宇宙,全网高能热剧一网打尽!  7大营销热点,承包了7月的吃“瓜”!  时隔 7 年再办“科技春晚”,罗永浩为延迟超 40 分钟开场致歉  蹭五月天热点,脑白金又来洗脑了?  AI导盲神器问世!靠「额头震动」辩位 助视障朋友安全回家  《超英派遣中心》耕升GeForce RTX 5060 踏雪 OC英雄的职场寓言  玩家推测《GTA6》超200G XSS可用空间仅364GB  2025年游戏首破! voice38攻破《索尼克 缤纷色彩 究极版》D加密  昆仑万维发布 Skywork Sheets 2.0  2026年1月发布新机曝光 六大新品乱战看点十足  兽系输出核心可燃点全方位培养指南  摩托辣妹太爽了! 《鸣潮》3.0版本更新上线  奇幻大陆百里香药剂制作完全攻略 从入门冰原到龙血秘制  《别拽了!烤串师傅》烤不完,根本烤不完,急聘烤串主理人  Resemble AI 全面开源旗舰级 TTS 模型  iQOO Z11 Turbo现身Geekbench平台 多核得分近9000  疑似小米17 Plus部分配置曝光 搭载第五代骁龙8至尊版 


相关栏目: 【 广告资讯37196 】 【 广告推广143353 】 【 广告优化89630