c#入门-运算符
创始人
2024-03-29 00:06:15
0

可用运算符

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

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

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

一元运算符

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

负数

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

取反

符号~和!都表示取相反的值。
在官方的定义里~被用于整数(小数类型不可用),!用于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;

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

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...