【C语言】操作符(上)

目录

  1.  操作符的分类  

  2.   原码、反码、补码  

  3.  移位操作符  

3.1  左移操作符

3.2  右移操作符  

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

  5.  单目操作符  

  6.  逗号表达式   


最近准备期末考试,好久不见啦,现在回归——

正文开始——

  1.  操作符的分类  

  • 算术操作符 :+、-、*、/、%
  • 移位操作符 :<<   、>>
  • 位操作符 :  & 、 |  、  ^
  • 赋值操作符 :  = 、+=、-=、*=、/=、%=、<<=、>>==、&=、!=、^=
  • 单目操作符 :!、++、--、&、*、+、-、~、sizeof、(类型)
  • 关系操作符 : >、>=、<、<=、==、!=
  • 逻辑操作符 :  &&、||
  • 条件操作符 :  ?  :
  • 逗号操作符 :  ,
  • 下表引用 :  [ ]
  • 函数调用:()
  • 结构成员访问:.  、->

  2.   原码、反码、补码  

【重点】

整数的2进制表示方法有三种:原码、反码、补码。

有符号整数的三种表示方法均有符号位数值位两部分,2进制序列中,最高位的1位是被当做为符号位,剩余的都是数值位。

符号位都是用0表示 “正”,1表示 “负”。

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

负整数的三种表示方法各不相同。

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

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

补码 :反码+1得到补码。

补码——>原码 :取反,+1。

对于整形来说,数据是以 补码 的形式存放在内存中的。

why?

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

  3.  移位操作符  

<<   左移操作符

>>   右移操作符

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

3.1  左移操作符

移动规则:左边抛弃,右边补0(移动的是存储在内存中的二进制位)

  3.2  右移操作符  

移动规则:右移运算分两种

  1. 逻辑右移:左边用0填充,右边丢弃
  2. 算术右移:左边用原该值的符号位填充,右边丢弃

【注】对于移位操作符,不要移动负数位,这个是标准的未定义的。 

例如:

1   int num = 0;
2   num >> -1;

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

&      按位与

|       按位或

^      按位异或

~     按位取反 

【注】它们的操作数必须是整数。 

 练习1:不能创建临时变量(第三个变量),实现两个整数的交换。

  5.  单目操作符  

单目操作符见下

!、++ 、-- 、& 、* 、+ 、- 、~ 、sizeof 、(类型)

  6.  逗号表达式  

1   exp1,exp2,exp3,...expN

逗号表达式,就是用逗号隔开的多个表达式。

逗号表达式,从左向右依次执行。表达式的结果是最后一个表达式的结果。

代码1
1   int a=1;
2   int b=2;
3   int c=(a>b,a=a+b,a,b=a+1); //求 c 值

代码2
1   if(a=b+1,c=a/2,d>0)

代码3
a = get_val();
count_val(a);
while(a>0)
{
   //...
   a = get_val();
   count_val(a);
}
  
用逗号表达式改写如下
while(a = get_val(),count_val(a),a>0)
{
    //...

}

完——

———————————————————纪念——————————————————

  那个夏天,结束时,你会为了什么...而...落泪...


记念_雷雨心_高音质在线试听_记念歌词|歌曲下载_酷狗音乐酷狗音乐为您提供由雷雨心演唱的高清音质无损记念mp3在线听,听记念,只来酷狗音乐!icon-default.png?t=N7T8https://t4.kugou.com/song.html?id=9IqAD2cCOV2

再见—— 

 

 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/733710.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于CPWM与DPWM综合调制的光伏逆变器

1. 光伏并网逆变器矢量控制 图 1 为光伏发电系统常用的逆变器拓扑结 构,太阳能光伏电池板发电所产生的直流电能接 入光伏并网逆变器直流侧。逆变器将电能逆变, 经过滤波器与隔离升压变压器连接,最终并入电 网。其中隔离变压器低压侧漏感与LC滤波器组 成LCL滤波。为便于分析…

C语言小例程

题目&#xff1a;两个乒乓球队进行比赛&#xff0c;各出三人。甲队为a,b,c三人&#xff0c;乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比&#xff0c;c说他不和x,z比&#xff0c;请编程序找出三队赛手的名单。 #include <stdio.h> #in…

Windows11系统自动获取电脑IPV6地址,并且开机自动发送到指定邮箱

废话&#xff1a;最近放假回家&#xff0c;在家里突然想玩游戏了&#xff0c;Steamdeck性能终归有限。部分游戏始终玩的不爽&#xff0c;想到之前了解到的SunshnieMoonlight串流的方案&#xff0c;远程调用家里的电脑打游戏&#xff0c;简直不要太爽。 一顿折腾之后配置好了所有…

算法05 模拟算法之二维数组相关内容详解【C++实现】

大家好&#xff0c;我是bigbigli&#xff0c;前面一节我们一节讲过一维数组的模拟了&#xff0c;如果还没看的话&#xff0c;可以&#x1f449;点击此处。模拟算法还有很多内容需要讲&#xff0c;比如图像、日期相关的模拟算法&#xff0c;后续将继续更新&#xff0c;今天先来讲…

C语言| 数组的顺序查找

顺序查找 查找数组a中第一次出现数字m的下标&#xff0c;并输出该下标&#xff1b; 如果没有则输出sorry。 1 定义变量 数组a&#xff0c;n表示数组的个数&#xff0c; m要查找的数字 2 用sizeof()函数&#xff0c;求出数组元素的个数 3 从键盘中任意输出一个数字m&#xff0c;…

大疆炸机后MOV修复方法(DJI Inspire 3)

dji大疆可以说是无人机中的华为&#xff0c;产品线之广性能之高让高傲的美国人侧面&#xff0c;质量和性价比才是王道。另外产品线的细分也是制胜法宝&#xff0c;无论是手持、农用机、特殊无人机还是影视级产品DJI都有涉及&#xff0c;给人的感觉就是在无人机细分方面它已经无…

信号基本分析方法——频域分析

二、频域分析 随机信号的时域分析只能提供有限的时域故障特征信息&#xff0c;故障发生时往往会引起信号频率结构的变化&#xff0c;而故障频率可以计算和预知&#xff0c;通过检测频率的幅值变换规律&#xff0c;就可以监控故障的发展过程。 频谱分析的理论基础是傅里叶变换…

支持 MKV、MP4、AVI、MPG 等格式视频转码器

一、简介 1、一款开源的视频转码器&#xff0c;适用于 Linux、Mac 和 Windows。它是一个免费的工具&#xff0c;由志愿者们开发&#xff0c;可以将几乎所有格式的视频转换为现代、广泛支持的编码格式。你可以在官网上下载该应用或源代码。该软件支持 MKV、MP4、AVI、MPG 等格式…

Graphviz——实现动态更新协议状态机

1、描述 为了实现动态更新协议状态机&#xff0c;首先需要定义类来表示协议状态机。初始化该类后&#xff0c;保存状态机对象。在后续更新过程中&#xff0c;就可以加载保存的状态机对象&#xff0c;添加新的状态或事件。Graphviz的安装过程参考&#xff1a;Graphviz——安装、…

PCL 三次样条插值(二维点)

一、简介 在插值计算中,最简单的分段多项式近似应该是分段线性插值,它由连接一组数据点组成,仅仅只需要将这些点一一用直线进行顺序相连即可。不过线性函数插值的缺点也很明显,就是在两个子区间变化的比较突兀,也就是没有可微性(不够光滑)。因此我们需要更为符合物理情况…

海外云手机自动化管理,高效省力解决方案

不论是企业还是个人&#xff0c;对于海外社媒的营销都是需要自动化管理的&#xff0c;因为自动化管理不仅省时省力&#xff0c;而且还节约成本&#xff1b; 海外云手机的自动化管理意味着什么&#xff1f;那就是企业无需再投入大量的人力和时间去逐一操作和监控每一台设备。 通…

波兰出局奥地利无限可能,荷法无谓争小组第一,谁能小组第一?

波兰出局奥地利无限可能,荷法无谓争小组第一,谁能小组第一&#xff1f; 2024欧洲杯D组结束小组赛第2轮争夺&#xff0c;积分榜形式如下&#xff1a;荷兰与法国均1胜1平积4分&#xff0c;两队之间直接对话战平&#xff0c;净胜球也均为1&#xff0c;荷兰凭借总进球数多1个暂列榜…

Python星载气溶胶数据处理与反演分析

在当前全球气候变化和环境污染问题日益突出的背景下&#xff0c;气溶胶研究显得尤为重要。气溶胶在大气中由直径范围在0.01微米至10微米固体和液体颗粒构成&#xff0c;直接或间接影响地球辐射平衡、气候变化和空气质量。尤其在“碳中和”目标的驱动下&#xff0c;研究气溶胶对…

韩顺平0基础学java——第29天

p592-599 线程 用户线程和守护线程 1.用户线程:也叫工作线程&#xff0c;当线程的任务执行完或通知方式结束 2守护线程:一般是为工作线程服务的&#xff0c;当所有的用户线选束&#xff0c;守护线程自动结束 3.常见的守护线程:垃圾回收机制 当我们希望当main线程结束后&…

高性能、高可靠性!Kafka的技术优势与应用场景全解析

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货!​​​​​​​ 大家好,我是你们的小米,今天要和大家聊聊一个超级强大的消息系统——Kafka。很多同学可能对它还不太熟悉,不过没关系,今天我就带你们…

从一到无穷大 #29 ByteGraph的计算,内存,存储三级分离方案是否可以通用化为多模数据库

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 引言ByteGraph现有架构阿里云Lindorm腾讯YottaDB多模型化修改点ByteGraph论文中的优化…

Linux中的全局环境变量和局部环境变量

Linux中的全局环境变量和局部环境变量 一、全局环境变量二、局部环境变量三、 设置全局环境变量 bash shell用一个叫作环境变量 &#xff08;environment variable&#xff09;的特性来存储有关shell会话和工作环境的信息&#xff08;这也是它们被称作环境变量的原 因&#xff…

Qt利用Coin3D(OpenInventor)进行3d绘图

文章目录 1.安装1.1.下载coin3d1.2.下载quarter1.3.解压并合并 2.在Qt中使用3.画个网格4.加载wrl模型5.画个锤子并旋转6.加载自定义视口文件 1.安装 1.1.下载coin3d 首先&#xff0c;到官网下载[coin3d/coin] 我是Qt5.15.2vs2019的&#xff0c;因此我选择这个coin-4.0.2-msvc…

“脏读”、“幻读”、“不可重复读”

“脏读”、“幻读”、“不可重复读” 1.概念说明 “脏读”、“幻读”、“不可重复读”是数据库事务的概念。 “脏读”是指一个事务中访问到了另外一个事务未提交的数据。 “不可重复读”是指在一个事务内根据同一个条件对数据进行多次查询&#xff0c;但是结果却不一致&…

某程序员:30岁了,老婆管钱,背着我买了50万股票,亏了20w,强制她清仓后又买了36万

“辛辛苦苦攒了几年钱&#xff0c;本想买房买车&#xff0c;结果全被老婆炒股亏掉了&#xff01;” 近日&#xff0c;一位30岁的程序员大哥在网上吐苦水&#xff0c;引发了网友们的热议。 这位程序员大哥和妻子结婚后&#xff0c;一直秉持着“男主外&#xff0c;女主内”的传统…