-唐老狮-C#入门运算符笔记

条件运算符

条件运算符优先级 低于 算术运算符

bool result;
result = 1 + 2 < 1 + 1;
//result = False

不能进行范围比较(python可以),会报错

bool result;
result = 1 < 2 < 3;    //error, False无法与3(int)比较

不同数值类型之间,可以随意比较

char可以被转换为数值类型,即可以和同类型比较(只能用==或!=),也可以和数值比较

bool, string只能在同类型之间,用==或!=比较

逻辑运算符

逻辑运算符 优先级 低于 条件运算符

逻辑 低于 条件 低于  !  低于 算术

1.逻辑与:&&

同真为真,有假则假。

bool result;
result = 1 < 2 && 2 < 3;
//result = True

2.逻辑或:||

同假为假,有真则真。

bool result;
result = 1 > 2 || 2 < 3;
//result = True

3.逻辑非:!

bool result = !1 < 2;    //error,系统会先给1取反
bool result = !( 1 < 2 );    //result = False

4.逻辑运算符短路规则

||左边为真,则直接返回“True”,不会运行||右边。若左边为假,则仍然会计算。

&&左边为假,则直接返回“False”,不会运行 &&右边。若左边为真,则仍然会计算。

int i = 0;
bool result = i < 1 || ++i < 1;
//result = True
//i = 0

i = 0;
result = i < 0 && ++i < 2;
//result = False
//i = 0

位运算符

将数值转换为二进制,再进行位运算

多个数值进行位运算时,遵循从左到右的顺序依次计算

1.位与:&

对位运算,有0则0

int i = 1;  //001
int j = 5;  //101
int k = i & j;
// 001
//&101
// 001
//k = 1

2.位或:|

对位运算,有1则1

int i = 1;  //001
int j = 5;  //101
int k = 19;
int l = i & j | k;
// 00001
//&00101
//=00001
//|10011
//=10011
//l = 19

3.异或:^

相同为0,不同为1

int i = 1;  //001
int j = 5;  //101
int k = i ^ j;
// 001
//^101
// 100
//k = 4

4.位取反:~

写在单个数值前,将数值转换为二进制

对位运算,0变1,1变0

注意,前面因为0与0的对位运算永远等于0,不用看完整的每一位

int共32位,取反结果如下,因为涉及反码补码,返回的十进制结果为-20

int i = 19;  //10011
int j = ~i;
//~0000 0000 0000 0000 0000 0000 0001 0011
//=1111 1111 1111 1111 1111 1111 1110 1100
//j = -20 

5.左移<< 和 右移>>

写在单个数值后,将数值转换成二进制,并进行"移动"

左移几位,右边加几个0,超过int所能储存位数会返回原来的值,甚至报错

右移几位,右边去掉几个数,二进制形式中 移动位数超过原来位数会返回0

int i = 19;  //10011
int j = i << 1;
int k = i >> 6;
//j = 38
//k = 0

三目运算符

1.基本语法:

何为三目?:由2个符号分隔开的3个空位

固定语法:空位?空位:空位;

关键信息:bool类型?bool为真时返回内容:为假时返回内容;

三目运算符会有返回值,这个返回值类型必须一致,并且必须使用

2.具体使用:

string i = 1 > 2 ? "条件为真" : "条件为假";
int j = !false? 1 : 0;
//i = "条件为假"
//j = 1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值