位运算符与逻辑运算符

每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。

_运算符间的优先级如下:数值运算符、字符串运算符、关系运算符、逻辑运算符。可以用括号改变优先级顺序,使得括号内的运算优先于括号外的运算。对于多重括号,总是由内到外强制表达式的某些部分优先运行。括号内的运算总是最优先计算。

一、位运算符

1.按位与运算符: &
&的运算规则: 操作数上下同为 1 则为 1, 否则为0
-----------------:1&1=1, 0&0=0, 0&1=0, 1&0=0

static void Main(string[] args)
        {
            int a = 6, b=5;
            //将a转换为二进制数为0110
            //将b转换为二进制数为0101
            int c = a + b;
            //将4转换为二进制数为0100
            Console.Write(c);
            Console.ReadKey();
        }

最终结果为:4 //… 4转换为二进制数为0100
在这里插入图片描述
2.按位异或运算符: ^
^的运算规则 : 操作数上下相异则为 1,否则为 0
-----------------:1 ^1=0, 0 ^0=0, 0 ^1=1, 1 ^0=1

static void Main(string[] args)
        {
            int a = 6, b=5;
            //将a转换为二进制数为0110
            //将b转换为二进制数为0101
            int c = a + b;
            //将3转换为二进制数为0011
            Console.Write(c);
            Console.ReadKey();
        }

最终结果为:3 //… 3转换为二进制数为0011

3.按位或运算符: |
| 的运算规则:操作数的上下只要有 1 则为 1,否则为 0
-----------------:1 | 1=1, 0 | 0=0, 0 | 1=1, 1 | 0=1

static void Main(string[] args)
        {
            int a = 6, b=5;
            //将a转换为二进制数为0110
            //将b转换为二进制数为0101
            int c = a + b;
            //将7转换为二进制数为0111
            Console.Write(c);
            Console.ReadKey();
        }

最终结果为:7 //… 7转换为二进制数为0111

4.按位取反运算符:~
~的运算规则:遇 10,遇 01
-----------------:一元运算符,具有“翻转 ”位效果,包括符号位。

 static void Main(string[] args)
        {
            int a = 6;
            int c = ~a;
            //将a转换为二进制数为0110
            Console.Write(c);
             //将c转换为二进制数为1111
            Console.ReadKey();
        }
    }

最终结果为:-7 //… -7转换为二进制数为1111
在这里插入图片描述
5.二进制右移运算符:>>
>> 右移规则:a >> x ----------------- x可为表达式
-----------------:操作数右移指定的位数 x

static void Main(string[] args)
        {
            int a = 2;
            //将a转换为二进制数为0010
            // 移动后空缺补**0** 超出舍弃
            Console.Write(a << 2);
            //输出a为:8  转换为二进制数为1000
            Console.ReadKey();
        }

6.二进制左移运算符:<<
>> 右移规则:a << x
-----------------:操作数左移指定的位数 x

static void Main(string[] args)
        {
            int a = 8;
            //将a转换为二进制数为1000
             //移动后空缺补**0** 超出舍弃
            Console.Write(a >> 2);
            //输出a为:2  转换为二进制数为0010
            Console.ReadKey();
        }

二、逻辑运算符

1.逻辑运算符与: &&
&& 逻辑与运算符:两操作数都非 0为真,其余其余为假。

static void Main(string[] args)
        {
            bool a = true;//设置两个真值
            bool b = true;
            if (a && b)
            {
                Console.Write("true");
                Console.ReadKey();
            }
            else
            {
                Console.Write("false");
                Console.ReadKey();
            }
            // 结果为: true

2.逻辑运算符或: ||
|| 逻辑或运算符:两操作数任意一个非 0都为真,都假为假。

static void Main(string[] args)
        {
            bool a = true;
            bool b = false;//改变 b 为假
            if (a && b)
            {
                Console.Write("true");
                Console.ReadKey();
            }
            else
            {
                Console.Write("false");
                Console.ReadKey();
            }
             // 结果为: true

3.逻辑运算符非: !
!逻辑非运算符:改变操作数值,使 0变为 1

static void Main(string[] args)
        {
            //bool a = true;
            bool b = false; //把a注释掉
            if (!b)
            {
                Console.Write("true");
                Console.ReadKey();
            }
            else
            {
                Console.Write("false");
                Console.ReadKey();
            }
             // 结果为: true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值