【C#】基础知识—运算符

一、概念

1. 常见运算符

算术运算符、赋值运算符、关系运算符、逻辑运算符、布尔逻辑运算符、移位运算符

 1)算术运算符:主要包括:+、-、*、/、%(取余或者模),使用运算符的时候也要遵循数学中的一些条件,比如表达式中除数不能为“0”;

 2)赋值运算符:用来为变量、属性和事件等元素赋值,主要包括=、+=、-=、*=、/=、%=、&=(位与赋值)、|=(位或赋值)、^=(异或赋值)、<<=(左移赋值)、>>=(右移赋值 x=x>>y)等运算符;

 3)关系运算符:可以实现对两个值的比较运算,并且在比较运算之后会返回一个代表运算结果布尔值;

public static void test3()
{
    int x1 = 22;
    int x2 = 33;
    bool result;
    // 使result等于x1和x2进行小于或者等于运算的返回值
    result = x2 > x1;
    Console.WriteLine(result);
    Console.ReadKey();  // True
}

 4)逻辑运算符:用于对两个表达式执行布尔逻辑运算。C#中逻辑运算符大体可以分为按位逻辑运算符布尔逻辑运算符

按位逻辑运算符:按位“与”运算符&、 按位“或”运算符|、按位“异或”运算符^(前者一假即假,后者一真则真、再者异真同假)1真 0假

布尔逻辑运算符:布尔“与”运算符&、 布尔“或”运算符|、布尔“异或”运算符^(前者一假即假,后者一真则真、再者异真同假)1真 0假

案例:

public static void test4()
{
    // 按位运算符案例
    int nu = 1;       // 1对应的二进制是  0000 0001 
    int nu2 = 85;     // 85对应的二进制是 0101 0101
    bool iseven;
    iseven = (nu & nu2) == 0;   // 1&85 0000 0001  十进制结果就是1
    Console.WriteLine(iseven);  // 1 == 0  false
    Console.WriteLine();


    // 布尔运算符案例
    bool Bls = true;
    int num = 20;
    bool result, result2, result3;
    result = Bls | (num < 30);
    result2 = Bls & (num < 30);
    result3 = Bls ^ (num < 30);
    Console.WriteLine("result的结果是{0},result1的结果是{1},result2的结果是{2}", result, result2,result3);
    Console.ReadKey();

}

 5)移位运算符:用于执行移位运算,分别称作左移位运算符和右移位运算符。对于X<<N:意思就是讲X向左移动N位,得到的结果类型与X相同,在此种X的类型只能是int、uint、long或者ulong类型,N只能是int类型。或者转换为这些类型之一,否则编译程序时会出现错误。

遵循:(左移运算符)高位溢出,低位补充0   (右移运算符)高位补0,低位舍弃

案例:

public static void test5()
{
    int a = 0x16;   // 转化为二进制是: 00000000 00010110
    a <<= 4;        // 舍弃高位0000 补上低位0000  最终就是00000001 01100000
    Console.WriteLine(a);  // 352

}

2. 特殊的运算符

is运算符、 条件运算符

 1)is运算符:用于检查变量是否为指定类型,如果是,返回真;如果不是,返回假;

public static void test5()
{
    int a = 0x16;   // 转化为二进制是: 00000000 00010110
    a <<= 4;        // 舍弃高位0000 补上低位0000  最终就是00000001 01100000
    Console.WriteLine(a);  // 352

    Console.WriteLine();
    int i = 0;
    bool result = i is int;
    Console.WriteLine(result);  // true
    Console.ReadKey();
}
 2)条件运算符?(三元运算符):根据布尔表达式的值返回两个值中的一个。如果是True,则计算第一个表达式并以它的计算结果为准(反之亦然)
public static void test5()
{
    int j = 22;
    int jj = 33;
    int jjj = j > jj ? 44 : 55;
    Console.WriteLine(jjj);  // 55
}

3. 运算符之间的优先级

算术运算符(一元、四则) > 移位运算符 > 关系运算符 > 逻辑运算符 > 条件运算符 > 赋值运算符   各运算符内部又按照一定的顺序

二、 运算符的说明

1. 自增自减运算符

案例:(自减意思一样)

 int _age = 33;
 int _age2 = 43;
 int _sum = _age++ - 10;
 int _sum2 = ++_age2 - 10;

 Console.WriteLine("age = {0}", _age);    // 34
 Console.WriteLine("sum = {0}", _sum);    // 23

 Console.WriteLine("age2 = {0}", _age2);  // 44
 Console.WriteLine("sum2 = {0}", _sum2);  // 34
 Console.ReadKey();
2. 逻辑运算符

案例:

int _age = 12;
int num = 23;
bool result = _age > num;
Console.WriteLine(result);
Console.ReadKey();



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值