C#运算符:算数运算符、关系运算符、逻辑运算符、位运算符

一、算数运算符:

在C#里算术运算符常用的有:加(+)、减(-)、乘(*)、除(/)和取余(%)。

1、加法运算符(+)就是把两个值进行相加处理 

int a = 11;
int b = 2;
Console.WriteLine(a + b);  // 13

2、减法运算符(-)就是把两个值进行相减处理 

int a = 11;
int b = 2;
Console.WriteLine(a - b);  // 9

3、乘法运算符(*)就是把两个值进行相乘处理

int a = 11;
int b = 2;
Console.WriteLine(a * b);  // 22

4、除法运算符(/)就是把两个值进行相除处理 ,但是与数学算法有点区别:他要根据操作数的数据类型计算。如果数据类型不一样的时候,要先统一类型再计算值。

// / 除法和数学有一点区别,需要看操作数的数据类型。
int a = 11;
int b = 2;
int c = a / b;
Console.WriteLine(c);

float f1 = 11F;
float f2 = 2F;
float f3 = f1 / f2;
Console.WriteLine(f3);

// 当数据类型不一致时,建议:先统一类型,再计算。
double f11 = 11D;
float f22 = 2F;
float f33 = (float)f11 / f22;
Console.WriteLine(f33);

5、取余运算符(%)就是求两个操作数相除的余数

int a = 11;
int b = 2;
Console.WriteLine(a % b);  // 1

二、关系运算符:

在C#中,关系运算符用于比较两个值之间的关系,并返回一个布尔值(0表示假,非0表示真)。

1、相等(==):判断两个操作数是否相等。
2、不等(!=):判断两个操作数是否不相等。
3、大于(>):判断第一个操作数是否大于第二个操作数。
4、小于(<):判断第一个操作数是否小于第二个操作数。
5、大于等于(>=):判断第一个操作数是否大于等于第二个操作数。
6、小于等于(<=):判断第一个操作数是否小于等于第二个操作数。

int a = 5;
int b = 3;
if (a == b) {
    // 执行代码块,当a等于b时
}
if (a != b) {
    // 执行代码块,当a不等于b时
}
if (a > b) {
    // 执行代码块,当a大于b时
}
if (a < b) {
    // 执行代码块,当a小于b时
}
if (a >= b) {
    // 执行代码块,当a大于等于b时
}
if (a <= b) {
    // 执行代码块,当a小于等于b时
}

三、逻辑运算符:

在C#中,逻辑运算符用于对布尔表达式进行操作,常用的逻辑运算符有三种:与(&&)、或(||)和非(!)。

1、与(&&):当两个操作数都为真时,结果才为真。如果任何一个操作数为假,那么结果就为假。

2、或(||):只要有一个操作数为真,结果就为真。只有当两个操作数都为假时,结果才为假。

3、非(!):用于对操作数取反,如果操作数为真,则结果为假;如果操作数为假,则结果为真。

逻辑运算符通常用于条件判断语句中,例如if语句、while循环等,用于组合多个条件,以便根据这些条件确定程序的执行流程。

int a = 5, b = 3, c = 7;
 
if (a > b && b > c) {
    Console.WriteLine("a大于b且b大于c\n");
} else if (a > b || b > c) {
    Console.WriteLine("a大于b或者b大于c\n");
} else if (!(a > b)) {
    Console.WriteLine("a不大于b\n");
}

四、位运算符:

在C#中,位运算符用于对整数的二进制位进行操作。常用的位运算符包括与(&)、或(|)、异或(^)、取反(~)、左移(<<)和右移(>>)。

1、与(&):对两个操作数的每一个位执行逻辑与操作,如果两个对应位都为1,则结果为1,否则为0。

2、或(|):对两个操作数的每一个位执行逻辑或操作,如果两个对应位任一为1,则结果为1,否则为0。

3、异或(^):对两个操作数的每一个位执行异或操作,如果两个对应位不相同,则结果为1,否则为0。

4、取反(~):对操作数的每一个位执行取反操作,即将0变为1,将1变为0。

5、左移(<<):将一个数的各二进制位全部左移若干位,高位丢弃,低位补0。

6、右移(>>):将一个数的各二进制位全部右移若干位,对无符号数,高位补0;对有符号数,采用符号位的扩展。

int a = 5;   //0000 0101
int b = 3;   //0000 0011

int c = a & b;  // 0000 0001  &按位与  都为1,才为1
int d = a | b;  // 0000 0111  |按位或  只要有一个为1,就是为1
int e = a ^ b;  // 0000 0110  ^按位异或  有一个为1的为1
int f = ~a;  // ~按位取反  每一位取反(难) 补码1111 1010==原码0000 0110  
// 补码转换回原码的规则是取反加1,补码的最高位表示符号位  0正数 1负数
int h = ~b;   // 补码1111 1100==原码0000 0100
int i = a << 4;  // 左移4位 0101 0000
int j = b >> 4;  // 右移4位 0000 0000

int octalNumber1 = 0123; // 八进制数123对应十进制数83
int octalNumber2 = 0127; // 八进制数127对应十进制数79
int octalNumber3 = 0777; // 八进制数777对应十进制数511
Console.WriteLine(octalNumber1); // 输出83
Console.WriteLine(octalNumber2); // 输出79
Console.WriteLine(octalNumber3); // 输出511

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值