【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

再见—— 

 

 


 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mulesoft --环境安装与搭建

1.mavenjdkpostman 2.anypoint statdio 下载安装 下载 Anypoint Studio & Mule |骡子软件 (mulesoft.com) 填好基本信息后&#xff0c;会发邮件&#xff0c;在邮件中下载&#xff0c;跳到官网下载 3注册账号 Download Anypoint Studio & Mule | MuleSoft 4.Connect…

详解 ClickHouse 的分片集群

一、简介 分片功能依赖于 Distributed 表引擎&#xff0c;Distributed 表引擎本身不存储数据&#xff0c;有点类似于 MyCat 之于 MySql&#xff0c;成为一种中间件&#xff0c;通过分布式逻辑表来写入、分发、路由来操作多台节点不同分片的分布式数据 ClickHouse 进行分片集群的…

C语言基础——函数(2)

ʕ • ᴥ • ʔ づ♡ど &#x1f389; 欢迎点赞支持&#x1f389; 文章目录 前言 一、return语句 二、数组做函数参数 三、嵌套调用和链式访问 3.1 嵌套调用 3.2 链式访问 四、函数声明和定义 4.1 单个文件 4.2 多个文件 总结 前言 大家好啊&#xff0c;继我们上一…

优化系统小工具

一款利用VB6编写的系统优化小工具&#xff0c;系统优化、桌面优化、清理垃圾、查找文件等功能。 下载:https://download.csdn.net/download/ty5858/89432367

【UE5.3】笔记1

内容浏览器&#xff1a;存放项目中所有的资源&#xff1a;关卡、蓝图类...... 关卡--Map 至少有一个关卡&#xff0c;可以有多个关卡 -漫游 视野漫游&#xff1a;鼠标右键WASD QE 鼠标滑轮控制摄像机速度 运行&#xff0c;ESC退出运行,快捷键F8不停止运行单独弹出功能 -创…

《编译原理》阅读笔记:p19-p24

《编译原理》学习第 4 天&#xff0c;p19-p24总结&#xff0c;总计 5 页。 一、技术总结 1.grouping of phases 这里谈到分组(group)&#xff0c;那么就会有一个疑问&#xff0c;分组的依据是什么&#xff1f;即根据什么来分组。 (1) front end & back end 编译器包含…

找不到d3dcompiler_47.dll如何修复,这几种修复方法可搞定

最近&#xff0c;我在尝试运行一款游戏时遇到了一个问题&#xff0c;系统提示我丢失了d3dcompiler_47.dll文件。这让我感到非常困扰&#xff0c;因为这个问题导致我无法正常运行游戏。经过一番搜索和尝试&#xff0c;我找到了几种修复这个问题的方法&#xff0c;并成功解决了这…

【内网穿透】FRP 跨平台内网穿透 支持windows linux x86_64 arm64 端口范围映射

AI提供的资料&#xff1a; FRP&#xff08;Fast Reverse Proxy&#xff09;是一个专为内网穿透设计的高性能反向代理程序。以下是一些关于FRP的详细资料&#xff0c;帮助您更好地理解和使用这一工具&#xff1a; 核心特点&#xff1a; 内网穿透&#xff1a;能够将位于内网的…

都2024年了,现在互联网行情怎样?

都2024年了&#xff0c;互联网行情是怎样的&#xff1f; 很直白的说&#xff0c;依旧是差得很&#xff0c;怎么说&#xff1f; 我刚在掘金上看到一个掘友写的文章&#xff0c;他是四月领了大礼包&#xff0c;据他的描述如下&#xff1a; 互联网行情依旧是差得很&#xff0c;很…

搜维尔科技:「研讨会」惯性动捕技术在工效学领域应用研讨会

Movella将于7月2日&#xff08;周二&#xff09;下午2点举行主题为惯性动捕技术在工效学领域应用的研讨会。来自Movella的伙伴赋能经理Jeffrey Muller作为嘉宾出席&#xff0c;届时主讲人将为大家带来Xsens惯性动捕技术在工效学领域的应用分享。同时&#xff0c;研讨会还邀请多…

监控https证书的到期时间

实现该功能&#xff0c;不用借助第三方库&#xff0c;用go的标准库就足够了… 以下程序可以获取这些域名的SSL证书的到期时间&#xff0c;并在证书距离现在不足7天过期时打印提示&#xff1a; package mainimport ("crypto/tls""fmt""net""…

运维.云技术学习.基于应用服务网格的灰度发布(上:理论基础篇)

运维专题 基于应用服务网格的灰度发布&#xff08;上&#xff1a;理论基础篇&#xff09; - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAdd…

Opencv学习项目6——pyzbar

在之前我们学习了解码图片中的二维码&#xff0c;这次我们开启摄像头来解码视频中二维码 开启摄像头 # 打开摄像头 cap cv2.VideoCapture(0) cap.set(3, 640) # 设置摄像头画面宽度 cap.set(4, 480) # 设置摄像头画面高度 我使用的是笔记本上的摄像头来进行的&#xff0c;…

通过systemctl启停tomcat

目录 目的.service配置文件的结构介绍实验步骤1. 安装java2. 二进制安装tomcat3. 编写/usr/systemd/system/tomcat.service文件4. 测试启动关闭 目的 通过二进制安装的tomcat&#xff0c;只能通过tomcat文件目录下的.sh脚本进行启停。 而我们一般使用的服务&#xff0c;是通过…

《数字图像处理》实验报告四

一、实验任务与要求 对 Fig0403.tif 进行傅里叶变换并显示其频谱图像&#xff1b;fft2(x) 对 Fig0405.tif 图像进行填充和非填充的高斯滤波&#xff0c;并观察其不同&#xff1b;paddedsize&#xff0c;fft2&#xff08;x,m,n&#xff09; 由 sobel 空间滤波算子生成相应的频率…

多链代币开发:打造跨链互操作性的新纪元

随着区块链技术的迅猛发展&#xff0c;数字资产和加密货币市场也在不断扩大。各大区块链平台如以太坊、币安智能链、波卡、Solana等&#xff0c;均展现出其独特的优势和广泛的应用场景。然而&#xff0c;这些链之间的孤立性和互操作性问题&#xff0c;限制了数字资产的流动性和…

突破架构瓶颈:克服软件系统中的漂移和侵蚀

一种常见但不完美的比喻是将软件系统中的架构漂移和侵蚀与物理建筑的架构相比。虽然这个比喻很直观&#xff0c;但它存在一个根本性的误解&#xff0c;这也常常引发软件开发中的架构问题。 试想一下&#xff0c;一个设计良好的摩天大楼或房屋建成后&#xff0c;我们期望它基本保…

docker 容器设置中文环境

1.容器中安装和设置 1.1.进入容器查看已有语言包 locale -a 默认情况下&#xff1a; 1.2 安装中文语言环境 如果没有zh_CN.utf8就安装。 方式1&#xff1a; #直接安装中文语言包 apt-get install -y language-pack-zh-hans 方式2&#xff1a; #安装中文语言环境 apt-g…

线性和二次判别分析

线性判别分析 线性判别分析&#xff08;Linear Discriminant Analysis&#xff0c;LDA&#xff09;亦称 Fisher 判别分析。其基本思想是&#xff1a;将训练样本投影到低维超平面上&#xff0c;使得同类的样例尽可能近&#xff0c;不同类的样例尽可能远。在对新样本进行分类时&…