c#入门-运算符

news2025/1/15 6:45:39

可用运算符

值的运算也是自定义的,但是这个就看不出了。
要么翻源文件,要么翻说明书才知道一个类型能怎么运算。

但是一个默认情况下的类型,是没有定义任何运算符的。
也就是说你适用的运算一定是由人先写出来的,没有系统默认的。

这一章为后续的自定义运算符做铺垫,运算符是不能想选什么符号就用什么符号的。
这一章先一览常见的运算符。

一元运算符

一元运算符只需要一个值就能进行计算

负数

在这里插入图片描述
在操作数前面可以适用+号或 - 号。直接含义是表示这个数字的本身,和他的负数。

取反

符号~和!都表示取相反的值。
在官方的定义里~被用于整数(小数类型不可用),!用于bool
在这里插入图片描述
数字的储存,是按照10101010这样的方式储存的,
对他适用~,会把每个数字全部取反,变成01010101。

二元运算

数学运算

数学运算符共有5种
分别是加,减,乘,除,和求余。

int a = 1 + 1;
int b = 1 - 1;
int c = 1 * 1;
int d = 1 / 1;
int e = 1 % 1;//求余数适用%符号

逻辑运算

逻辑运算除了上面说过的取反,
还有位与,逻辑与,位或,逻辑或,异或

bool t = true;
bool f = false;

bool b1 = t | f;//位或
bool b2 = t || f;//逻辑或
bool b3 = t & f;//位与
bool b4 = t && f;//逻辑与
bool b5 = t ^ f;//异或

什么是与,或,异或

与是指需要所有条件都满足。
与就是和的意思,这场比赛小明和小王都必须到场,就是缺一不可。

或是指条件有一个满足。
这场比赛小明和小王有任何一个人来就行了。

异或,条件有不一样的。
这场比赛,要么小明在红队小王在蓝队;要么小明在蓝队小王在红队。
总之他们不能在一个队伍里。

逻辑和或的区别

  1. 位可以对数字使用。和取反一样,对这个数字上的所有01进行或运算,或与运算。
  2. 逻辑运算会短路。如果左边的值已经能得到结果了,就不会再执行右边的值了。

例如,整数的0不能用来当除数。
b6在计算的时候,左侧直接能得到值,不会计算1/0,所以不会出错。
而b7会执行到1/0。

int i = 0;
bool b6 = true || 1 / i > 0;
bool b7 = true | i / i > 0;

位偏移

位偏移一共有三种符号。左偏移,右偏移,不带符号右偏移。

int i1 = 1 >>> 2;
int i2 = 1 << 2;
int i3 = 1 >> 2;

对于一个二进制的数字00010100来说,
左偏移两位就会变成:01010000。从结果来说就是值除4.
右偏移同理,偏移三位相当于乘8。
而无符号右偏移,会保留符号位,也就是第一位数字不动。

偏移的作用很小。他的作用就是给算法工程师做优化。
直接偏移的效率是比算乘法除法要快的。

关系运算

关系运算有6种。分别是大于,小于,大于等于,小于等于,等于,不等于。

int i1 = 10, i2 = 10;
bool b1 = i1 < i2;
bool b2 = i1 <= i2;
bool b3 = i1 > i2;
bool b4 = i1 >= i2;
bool b5 = i1 == i2;
bool b6 = i1 != i2;

需要强调的是他的顺序。等于号一定是写在右边的。
另外,等于运算需要写两个等于。一个等于只用来表示赋值运算。

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

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

相关文章

MYSQL的索引事务

文章目录1&#xff1a;索引1.1&#xff1a;概念&#xff1a;1.2 作用&#xff1a;1.3 使用场景&#xff1a;1.4 使用&#xff1a;补充&#xff1a;**2&#xff1a;了解一下B树&#xff1a;****3&#xff1a;了解一下B树**4&#xff1a;为什么使用B树/B树来实现索引2&#xff1a…

通过IP地址如何查到用户真实个人信息

当人们使用服务时&#xff0c;互联网上所有科技巨头公司都会收集大量的数据&#xff0c;他们就是这样发财的。微博知道您的朋友是谁、您 “喜欢” 什么&#xff0c;以及您在新闻源上阅读的内容种类&#xff1b;百度知道您的想法、您想知道什么、以及任何时候的去向&#xff1b;…

[附源码]JAVA毕业设计小区物业管理系统(系统+LW)

[附源码]JAVA毕业设计小区物业管理系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

Spring cloud Eureka服务注册中心实战

Spring cloud Eureka服务注册中心一、注册中心二、存在意义三、角色四、运行流程五、入门案例1、创建Spring Cloud 工程2、创建 Eureka 服务pom.xml3、配置 application.yml4、服务间调用方式一&#xff1a;RestTemplate DiscoveryClient方式二&#xff1a;RestTemplate Load…

【Golang】关于slice调用append函数后分配新数组的问题(slice的底层实现)

问题描述 今天在写代码的时候遇到一个很奇怪的现象&#xff0c;先看下面两段代码 func push(a []int, v int) {a[1] 2a append(a, v) } func main() {a : []int{0, 1, 2}push(a, 3)fmt.Println(a) }结果&#xff1a;[0 2 2] func push(a []int, v int) {a append(a, v)a[…

如何看股票l2接口的最佳买卖价位委托明细?

股票l2接口的买卖价位委托明细即买一卖一位置的挂挡情况&#xff0c;挂单可以让用户及时了解交易队列&#xff0c;从而了解完整的开盘情况。用户可以通过观察挂单来判断档位是否有主力资金介入&#xff0c;从而判断开盘时的主力动态&#xff0c;进而把握投资机会。 1.股票l2接…

数据库之insert的使用讲解

1单独插入一条数据&#xff1a; INSERT INTO t1(col1,col2) VALUE(v01,v02); 2插入多条数据 INSERT INTO t1(col1,col2) VALUE(v01,v02)&#xff0c;(v03,v04)&#xff0c;(v05,v06)...; 3插入查询的数据&#xff08;查询N条数据插入N条数据&#xff0c;广泛应用&#xf…

微信小程序|使用小程序制作一个足球拼图小游戏

世界杯的意义永远不止是冠军&#xff0c;它是每个精彩的瞬间&#xff0c;是呐喊&#xff0c;是青春。此文用小程序制作一个足球的拼图小游戏&#xff0c;一起为世界杯疯狂吧&#xff01; 开发步骤一、工具安装二、功能实现1 . 提示图展示2 . 绘制画布内容3 . 打乱方块顺序4 . 移…

模型和视图框架(概念)

MVC&#xff08;Model-View-Controller&#xff09;是一种设计模式。 Model(模型)是应用对象&#xff0c;用来显示模型View (视图)是用户界面&#xff0c;用来显示数据Controller(控制)定义用户界面对用户输出的反映方式模型/视图类可以分为上述三组&#xff1a;模型、视图和委…

CPU100%,怎么快速定位?

一台机器&#xff0c;CPU100%&#xff0c;如何找到相关服务&#xff0c;如何定位问题代码&#xff0c;今天简单分享下思路。假设&#xff0c;服务器上部署了若干Java站点服务&#xff0c;以及若干Java微服务&#xff0c;突然收到运维的CPU异常告警。如何定位是哪个服务进程导致…

是时候给钉钉和腾讯会议算算账了

杨净 萧箫 发自 凹非寺量子位 | 公众号 QbitAI这几天&#xff0c;工作和上课等事情开始有回归线下的迹象&#xff0c;腾讯会议、钉钉似乎也可以松口气了。毕竟云会议的这两大APP&#xff0c;前段时间一直在被网友找平替。一来&#xff0c;它们要收费了&#xff1b;二来&#xf…

【有营养的算法笔记】整数二分和浮点二分的全面分析

&#x1f451;作者主页&#xff1a;进击的安度因 &#x1f3e0;学习社区&#xff1a;进击的安度因&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;有营养的算法笔记 文章目录一、铺垫二、整数二分模板分析三、模板应用 —— 数的范围四、浮点二分模板分析…

简单引入JQuery

简单引入JQuery前言环境配置下载官网的JQuery到本机引入JQuery到Html文件中前言 作为一个兢兢业业的后端程序猿&#xff0c;这里为了方便自己搭建的项目更加合理&#xff0c;使自己写的接口对前端也更加友好。所以我决定&#xff0c;从头开始学习下前端知识。 环境配置 下载…

[附源码]JAVA毕业设计翔隆生鲜超市进货管理系统(系统+LW)

[附源码]JAVA毕业设计翔隆生鲜超市进货管理系统&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 …

聚宽量化入门量化策略是什么?

聚宽量化入门量化策略JoinQuant聚宽API文档&#xff1a;MetaTradeAPI (metatradeapi) - Gitee.com 获取要操作的股票或指数成分股 1、# 导入函数库&#xff1b; 2、import jqdata&#xff1b; 3、# 初始化函数&#xff0c;设定基准 def initialize(context)&#xff1a; …

每日一题 —— LC. 1687 从仓库到码头运输箱子(难度很大,但值得好好消化的一道题)

1687. 从仓库到码头运输箱子 你有一辆货运卡车&#xff0c;你需要用这一辆车把一些箱子从仓库运送到码头。这辆卡车每次运输有 箱子数目的限制 和 总重量的限制 。 给你一个箱子数组 boxes和三个整数 portsCount, maxBoxes 和 maxWeight &#xff0c;其中 boxes[i][portsi,we…

web前端期末大作业:基于HTML+CSS+JavaScript制作鲜花礼品在线购物网站设计(19页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

代码随想录刷题Day59 | 503. 下一个更大元素 II | 42. 接雨水

代码随想录刷题Day59 | 503. 下一个更大元素 II | 42. 接雨水 503. 下一个更大元素 II 题目&#xff1a; 给定一个循环数组 nums &#xff08; nums[nums.length - 1] 的下一个元素是 nums[0] &#xff09;&#xff0c;返回 nums 中每个元素的 下一个更大元素 。 数字 x 的…

云与开源,共植数字世界的根

摘要&#xff1a;本文整理自阿里巴巴集团副总裁、阿里巴巴开源技术委员会负责人贾扬清&#xff0c;在 Flink Forward Asia 2022 主会场的开场致辞。Tips&#xff1a;点击「阅读原文」获取演讲 ppt&#xff5e;云和开源&#xff0c;共生、共长、共植数字世界的根。从在云上使用开…

SAP PS 第17节 项目产成品产出

SAP PS 第17节 项目产成品产出及差异处理1 模拟场景说明1.1 拖拽负库存1.2 发料原材料及报工1.3 执行副产品入库migo发预留1.4 CNS0交货1.5 后面开票产生收入按照项目结算即可项目上有一类比较另类的玩法&#xff0c;就是舍弃PP&#xff0c;依靠网络活动的负库存&#xff0c;实…