C#基础知识-自动转换类型+强制转换+字符型与整型转换+算术运算符+逻辑运算符+位运算符

自动转换类型与强制转换

                //自动类型转换
                sbyte num0 = 10;
                int num1 = num0;//sbyte变成int
                Console.WriteLine(num1);
               

                //强制类型转换
                int num2 = 128;
                sbyte num3 = (sbyte)num2;
                Console.WriteLine(num3);

在程序中,short和sbyte在参与运算时,会自动转换为int

  //在程序中,short和sbyte在参与运算时,会自动转换为int
                short num0 = 1, num1= 2;
                int sum = num0 +num1;
                Console.WriteLine(sum);

                sbyte num2= 1, num3 = 2;
                int sum1 = num2 + num3;
                Console.WriteLine(sum1);

字符型和整型相同,可以相互转换,字符在计算机底层存储的时候都是采用一个数字表存储

例如:ASCII码

                //字符型和整型相同,可以相互转换,
                //字符在计算机底层存储的时候都是采用一个数字表存0,储例如:ASCII码
                char c = '张';
                Console.WriteLine((char)(c+1));
                //自动类型转换
                int a = 'a';
                Console.WriteLine(a);
                //强制类型转换
                char c2 = (char)97;
                Console.WriteLine(c2);

补充ASCII码的图

 

算术运算符

                Console.WriteLine("算术运算");//算术运算符
                int a = 10, b = 20;
                Console.WriteLine(a+b);//30
                Console.WriteLine(a-b);//-10
                Console.WriteLine(a*b);//200
                Console.WriteLine(a/b);//0,整型与整型运算,得到整型
                Console.WriteLine(a%b);//10

自增运算

  1. 自增运算可放在变量前,也可放在变量后
  2. 自增运算若放在变量前,表示先对这个变量进行自增操作,然后再对这个变量的值使用
  3. 自增运算若放在变量前,表示先取这个变量的值使用,然后再对这个变量进行自增操作

     

                int a =10;
                Console.WriteLine(a++);//10
                Console.WriteLine(++a);//12
                Console.WriteLine(--a);//11
                Console.WriteLine(a--);//11
                Console.WriteLine(a);//10

逻辑运算符:指的是两个布尔型的数据进行逻辑运算

             &逻辑与:两个数据都是true时,结果才是true,一个是false,都是false
             |逻辑或:两个数据都是false时才是false,只要一个数据是true,结果就是true 
             !逻辑非:取反
             ^逻辑异或:两个数据不一样是false,两个数据都一样结果是false
             


                //逻辑运算符
                //指的是两个布尔型的数据进行逻辑运算
                //&逻辑与:两个数据都是true时,结果才是true,一个是false,都是false
                Console.WriteLine(true & true & false);//false
                //|逻辑或:两个数据都是false时才是false,只要一个数据是true,结果就是true
                Console.WriteLine(false | true);//true
                //!逻辑非:取反
                Console.WriteLine(!true);//false
                //^逻辑异或:两个数据不一样是false,两个数据都一样结果是false
                Console.WriteLine(true^true);//false

短路与:如果某个数据已经可以决定整体的运算结果了,那么后面的表达是不参与运算

短路或:与短路与相同

短路与:如果某个数据已经可以决定整体的运算结果了,那么后面的表达是不参与运算
                int a = 10,b= 30;
                bool result = a++ > --b && a++ < b++;
                //a=10<b=29在这里就false了,所以不进行后面的
                Console.WriteLine(result);//false
                Console.WriteLine(a);//a=11
                Console.WriteLine(b);//b=29

                //短路或与短路与相同

 位运算符:参与位运算的都是整形数据,将两个参与运算的数字展开为补码形式,将每一位进行运算。
   

                //位运算符
                //参与位运算的都是整形数据
                //将两个参与运算的数字展开为补码形式,将每一位进行运算
                Console.WriteLine(8 | 7);
                //0000  1000
                //0000  0111
                //0000  1111=15
                Console.WriteLine(8 & 7);
                //0000  1000
                //0000  0111
                //0000  0000=0
                Console.WriteLine(8 ^ 7);
                //0000  1000
                //0000  0111     
                //0000  1111=15
                Console.WriteLine(~8);
                //0000  1000
                //1111  0111        负数
                //1000  10001=-9    取补码

 位左移和位右移
              原数左移x位,面补上x个0,也就是原数*2的x次方
              原数右移x位,面补上x个0,也就是原数/2的x次方

  

 //位左移
 Console.WriteLine(8 << 2);//8左移2位,后面补上2个0,也就是原数8*2的2次方:8*4=32
 //0000  1000
 //0010  0000=32
 //位右移
 Console.WriteLine(8 >> 2);//8右移2位,前面补上2个0,也就是原数8/2的2次方:8/4=2
//0000  1000
//0000  0010=2


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早日退休过上不劳而获生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值