当前位置: 首页 > news >正文

操作符知识点大全(简洁,全面,含使用场景,演示,代码)

目录

一.算术操作符

1.要点: 

二.负数原码,反码,补码的互推

1.按位取反操作符:~(二进制位)

2.原反补互推演示 

三.进制位的表示

1.不同进制位的特征:

2.二进制位表示

3.整型的二进制表示

 四.移位操作符

1.左移操作符 

2.右移操作符

五.位操作符

1.使用禁忌:

2.位操作符一览:

3.位操作符的注意要点:

4.位操作符使用演示:

5.位操作符的应用:“不创建临时变量实现两个数的交换”

6.位操作符的应用:“求一个整数存储在内存的二进制中1的个数”

法一:利用移位操作符

法二: 利用二进制原理

六.赋值操作符

 1.连续赋值(接收上一个运算的返回值)

 2.复合赋值符

七.逻辑操作符 

1.逻辑操作符一览

2.区分 “逻辑与或” 和  “按位与或” 

3.经典例题 

例1:逻辑与的“短路特性”——前面为0判定时,后面不操作

例2:逻辑或的“反短路特性”——前面为真判定时,后面不操作

八.单目操作符

1.单目操作符一览

2.sizeof特性与操作规范 (操作数的类型长度)

九.其他操作符

1.下标引用操作符

2.函数引用操作符

3.访问结构的成员操作符

九.算术转换

十.隐式类型转换

1.概述:

2.整型提升:

一.正负数的整型提升

3.截断: 

十一.问题表达式问题

原理:优先级虽然存在,但与执行的次序存在不确定性

例1:无法判断三个fun( )哪个先执行

例2:无法判断是c开始先去+"--c",还是先执行--c再+c

十二.逗号表达式

1.逗号表达式

2.逗号表达式的实际应用——简化代码


一.算术操作符

+    -    *    /   %


1.要点: 

  1. 除了%操作符之外,其他操作符都可以作用于整数浮点数
  2. 对于/操作符如果两个操作数都为整数,则执行整数除法;只要有浮点数浮点数除法
  3. %操作符的两个操作数必须为整数。返回的是整除后的余数
  4. 除法 / 想要得到小数,保证除数和被除数中至少有一个是浮点数

        (5.0/2——>2.5)


二.负数原码,反码,补码的互推


1.按位取反操作符:~(二进制位)

~:二进制位0变1,1变0

00000000000000000000000000000001
11111111111111111111111111111110 按位取反后

2.原反补互推演示 

原理:

 例子:


三.进制位的表示


1.不同进制位的特征:

进制位的表示范围都为(0~进制位-1)

例:10进制位(0~9)   8进制位(0~7)


2.二进制位表示

进制位从右往左,分别代表进制位的数×进制位的0到若干次方

例:二进制表示15


3.整型的二进制表示

 四.移位操作符


1.左移操作符 

  • 补码移动,空缺补0
  • 左移效果:扩大二倍 (负数也适用,例:4->8,-4->-8)

    ​​​​​

PS:涉及原反补码的运算,不清楚+1-1的可以看本博客原反补码块知识点

图示: 


2.右移操作符

  • 逻辑右移:左边丢弃,左边补0
  • 算术右移(正负数):右边丢弃,左边补原符号位(保持原来的符号位)

    

 图示:


五.位操作符


1.使用禁忌:

  • 不要移动负数位,此行为未定义!

       


2.位操作符一览:

1.按位与&:有0为0,全1为1

2.按位或 |:有1为1,全0为0

3.按位异或^:相同为0,相异为1


3.位操作符的注意要点:

  • 他们的操作数必须是整数
  • 位操作的应用场景,一般是补码层面的运算

4.位操作符使用演示:


5.位操作符的应用:“不创建临时变量实现两个数的交换”

原理:

  • 任何数 和0 亦或^都是它自己两个相同的数亦或^都为0
  • 运算后不会发生进位
int main()
{int a=10;int b=20;//二进制层面,每一位只有0/1两种可能a=a^b;   此时,a相当于在二进制层面上,原来ab两数二进制各位的集合b=a^b;   根据相同数亦或为0,b中存储的是集合排除掉b后的结果,即本来的aa=a^b;   根据相同数亦或为0,此时存储的是集合排除掉本来的a后的结果,即b
}

6.位操作符的应用:“求一个整数存储在内存的二进制中1的个数”


法一:利用移位操作符

原理:按位与&1,按位右移。统计32次后按位与1结果之和

代码演示: 

int main()
{int count=0;for(int i=0;i<32;i++){if((n>>1)&1)==1){count++;}}return 0;
}

法二: 利用二进制原理

原理:

  • 模%2相当于拿到二进制位中的最右边一位
  • 除/2相当于拿到二进制位中的最右边边以外的二进制序列


六.赋值操作符


 1.连续赋值(接收上一个运算的返回值)


 2.复合赋值符


七.逻辑操作符 


1.逻辑操作符一览

  • &&:逻辑与
  • ||:逻辑或

2.区分 “逻辑与或” 和  “按位与或” 

 


3.经典例题 


例1:逻辑与的“短路特性”——前面为0判定时,后面不操作


例2:逻辑或的“反短路特性”——前面为真判定时,后面不操作


八.单目操作符


1.单目操作符一览


2.sizeof特性与操作规范 (操作数的类型长度)

操作规范:

特性:sizeof内部操作不改变原值

 PS:截断过程


九.其他操作符


1.下标引用操作符


2.函数引用操作符

():接受一个或多个操作数:第一个操作数是函数名,其余的操作数就是传递给函数的参数

演示:

 


3.访问结构的成员操作符

演示: 


九.算术转换


十.隐式类型转换


1.概述:


2.整型提升:


一.正负数的整型提升

方法:高位补符号位


3.截断: 

  • 与整型提升(char赋值给int)相对的,当int(整型)赋值给char时,会发生截断。
  • 运算时依照规定又要进行整型提升

  • 涉及到运算时,才会发生截断


十一.问题表达式问题


原理:优先级虽然存在,但执行的次序存在不确定性

 


例1:无法判断三个fun( )哪个先执行


例2:无法判断是c开始先去+"--c",还是先执行--c再+c

 


十二.逗号表达式


1.逗号表达式

  • 逗号表达式,就是用逗号隔开的多个表达式
  • 逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果

2.逗号表达式的实际应用——简化代码

优化前:

a=get_val();
count_val(a);
while(a>0)
{业务处理a=get_val();count_val(a);
}

优化后:

a=get_val();
count_val(a);
while(a=get_val(),count_val(a),a>0)
{业务处理
}

 

 

 

相关文章:

操作符知识点大全(简洁,全面,含使用场景,演示,代码)

目录 一.算术操作符 1.要点&#xff1a; 二.负数原码&#xff0c;反码&#xff0c;补码的互推 1.按位取反操作符&#xff1a;~&#xff08;二进制位&#xff09; 2.原反补互推演示 三.进制位的表示 1.不同进制位的特征&#xff1a; 2.二进制位表示 3.整型的二进制表…...

华工研究生语音课

这门课讲啥 语音蕴含的信息、语音识别的目的 语音的准平稳性、分帧、预加重、时域特征分析&#xff08;能量和过零率&#xff09;、端点检测&#xff08;双门限法&#xff09; 语音的基频及检测&#xff08;主要是自相关法、野点的处理&#xff09; 声音的产生过程&#xf…...

KingbaseES 原生XML系列二 -- XML数据操作函数

KingbaseES 原生XML系列二--XML数据操作函数(DELETEXML,APPENDCHILDXML,INSERTCHILDXML,INSERTCHILDXMLAFTER,INSERTCHILDXMLBEFORE,INSERTXMLAFTER,INSERTXMLBEFORE,UPDATEXML) XML的简单使其易于在任何应用程序中读写数据&#xff0c;这使XML很快成为数据交换的一种公共语言。…...

【Flink】DataStream API使用之源算子(Source)

源算子 创建环境之后&#xff0c;就可以构建数据的业务处理逻辑了&#xff0c;Flink可以从各种来源获取数据&#xff0c;然后构建DataStream进项转换。一般将数据的输入来源称为数据源&#xff08;data source&#xff09;&#xff0c;而读取数据的算子就叫做源算子&#xff08…...

树莓派硬件介绍及配件选择

目录 树莓派Datasheet下载地址&#xff1a; Raspberry 4B 外观图&#xff1a; 技术规格书&#xff1a; 性能介绍&#xff1a; 树莓派配件选用 电源的选用&#xff1a; 树莓派外壳选用&#xff1a; 内存卡/U盘选用 树莓派Datasheet下载地址&#xff1a; Raspberry Pi …...

O2OA (翱途) 平台 V8.0 发布新增数据台账能力

亲爱的小伙伴们&#xff0c;O2OA (翱途) 平台开发团队经过几个月的持续努力&#xff0c;实现功能的新增、优化以及问题的修复。2023 年度 V8.0 版本已正式发布。欢迎大家到 O2OA 的官网上下载进行体验&#xff0c;也希望大家在藕粉社区里多提宝贵建议。本篇我们先为大家介绍应用…...

数控解锁怎么解 数控系统解锁解密

Amazon Fargate 在中国区正式落地&#xff0c;因 数控解锁使用 Serverless 架构&#xff0c;更加适合对性能要求不敏感的服务使用&#xff0c;Pyroscope 是一款基于 Golang 开发的应用程序性能分析工具&#xff0c;Pyroscope 的服务端为无状态服务且性能要求不敏感&#xff0c;…...

3.0 响应式系统的设计与实现

1、Proxy代理对象 Proxy用于对一个普通对象代理&#xff0c;实现对象的拦截和自定义&#xff0c;如拦截其赋值、枚举、函数调用等。里面包含了很多组捕获器&#xff08;trap&#xff09;&#xff0c;在代理对象执行相应的操作时捕获&#xff0c;然后在内部实现自定义。 const…...

Rust 快速入门60分① 看完这篇就能写代码了

Rust 一门赋予每个人构建可靠且高效软件能力的语言https://hannyang.blog.csdn.net/article/details/130467813?spm1001.2014.3001.5502关于Rust安装等内容请参考上文链接&#xff0c;写完上文就在考虑写点关于Rust的入门文章&#xff0c;本专辑将直接从Rust基础入门内容开始讲…...

【5.JS基础-JavaScript的DOM操作】

1 认识DOM和BOM 所以我们学习DOM&#xff0c;就是在学习如何通过JavaScript对文档进行操作的&#xff1b; DOM Tree的理解 DOM的学习顺序 DOM的继承关系图 2 document对象 3 节点&#xff08;Node&#xff09;之间的导航&#xff08;navigator&#xff09; 4 元素&#xff0…...

【大数据之Hadoop】二十九、HDFS存储优化

纠删码和异构存储测试需要5台虚拟机。准备另外一套5台服务器集群。 环境准备&#xff1a; &#xff08;1&#xff09;克隆hadoop105为hadoop106&#xff0c;修改ip地址和hostname&#xff0c;然后重启。 vim /etc/sysconfig/network-scripts/ifcfg-ens33 vim /etc/hostname r…...

SuperMap GIS基础产品组件GIS FAQ集锦(2)

SuperMap GIS基础产品组件GIS FAQ集锦&#xff08;2&#xff09; 【iObjects for Spark】读取GDB参数该如何填写&#xff1f; 【解决办法】可参考以下示例&#xff1a; val GDB_params new util.HashMapString, java.io.Serializable GDB_params.put(FeatureRDDProviderParam…...

C语言printf()函数中整型格式说明符详解

每个整型在printf()函数中对应不同的格式说明符,以实现该整型的打印输出。格式说明符必须使用小写。现在让我们看看各个整型及其格式说明符: 短整型(short) 10进制:%hd16进制:无负数格式,正数使用%hx8进制:无负数格式,正数使用%ho c short s 34; printf("%hd", s…...

阿里云服务器地域和可用区怎么选择合适?

阿里云服务器地域和可用区怎么选择&#xff1f;地域是指云服务器所在物理数据中心的位置&#xff0c;地域选择就近选择&#xff0c;访客距离地域所在城市越近网络延迟越低&#xff0c;速度就越快&#xff1b;可用区是指同一个地域下&#xff0c;网络和电力相互独立的区域&#…...

Java序列化引发的血案

1、引言 阿里巴巴Java开发手册在第一章节&#xff0c;编程规约中OOP规约的第15条提到&#xff1a; **【强制】**序列化类新增属性时&#xff0c;请不要修改serialVersionUID字段&#xff0c;避免反序列失败&#xff1b;如果完全不兼容升级&#xff0c;避免反序列化混乱&#x…...

为Linux系统添加一块新硬盘,并扩展根目录容量

我的原来ubuntu20.04系统装的时候不是LVM格式的分区&#xff0c; 所以先将新硬盘转成LVM&#xff0c;再将原来的系统dd到新硬盘&#xff0c;从新硬盘的分区启动&#xff0c;之后再将原来的分区转成LVM&#xff0c;在融入进来 1&#xff1a;将新硬盘制作成 LVM分区 我的新硬盘…...

树莓派Opencv调用摄像头(Raspberry Pi 11)

前言&#xff1a;本人初玩树莓派opencv&#xff0c;使用的是树莓派Raspberry Pi OS 11&#xff0c;系统若不一致请慎用&#xff0c;本文主要记录在树莓派上通过Opencv打开摄像头的经验。 1、系统版本 进入树莓派&#xff0c;打开终端输入以下代码&#xff08;查看系统的版本&…...

国产ChatGPT命名图鉴

很久不见这般热闹的春天。 随着ChatGPT的威名席卷全球&#xff0c;大洋对岸的中国厂商也纷纷亮剑&#xff0c;各式本土大模型你方唱罢我登场&#xff0c;声势浩大的发布会排满日程表。 有趣的是&#xff0c;在这些大模型产品初入历史舞台之时&#xff0c;带给世人的第一印象其…...

操作系统——进程管理

0.关注博主有更多知识 操作系统入门知识合集 目录 0.关注博主有更多知识 4.1进程概念 4.1.1进程基本概念 思考题&#xff1a; 4.1.2进程状态 思考题&#xff1a; 4.1.3进程控制块PCB 4.2进程控制 思考题&#xff1a; 4.3线程 思考题&#xff1a; 4.4临界资源与临…...

第四十一章 Unity 输入框 (Input Field) UI

本章节我们学习输入框 (Input Field)&#xff0c;它可以帮助我们获取用户的输入。我们点击菜单栏“GameObject”->“UI”->“Input Field”&#xff0c;我们调整一下它的位置&#xff0c;效果如下 我们在层次面板中发现&#xff0c;这个InputField UI元素包含两个子元素&…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...