让我们来详细讲解一下C#中的逻辑运算符、位运算符及移位运算符。
逻辑运算符
与运算符(&&)
与运算符用于连接两个逻辑表达式并在两个表达式均为true时返回true。与运算符可以被用于任何基本的数据类型,例如bool、int等。
int a = 3;
int b = 5;
if (a < b && b % 2 == 1)
{
Console.WriteLine("a小于b且b是奇数");
}
上面的代码示例中,如果a小于b且b是奇数,那么控制台就会输出"a小于b且b是奇数",否则不做任何输出。
或运算符(||)
或运算符用于连接两个逻辑表达式并在两个表达式有任意一个为true时返回true。或运算符同样也可以用于任何基本的数据类型。
int a = 3;
int b = 5;
if (a == 3 || b == 4)
{
Console.WriteLine("a等于3或b等于4");
}
上述代码示例中,如果a等于3或b等于4,那么控制台就会输出"a等于3或b等于4",否则不做任何输出。
异或运算符(^)
异或运算符用于连接两个逻辑表达式并在两个表达式仅当一个为true时返回true。异或运算符也可以用于任何基本的数据类型,例如bool、int等。
int a = 3;
int b = 5;
if (a == 3 ^ b == 3)
{
Console.WriteLine("a等于3且b不等于3,或者a不等于3且b等于3");
}
上述代码示例中,如果a等于3且b不等于3,或者a不等于3且b等于3,那么控制台会输出"a等于3且b不等于3,或者a不等于3且b等于3",否则不做任何输出。
位运算符
按位与运算符(&)
按位与运算符用于连接两个整数并在它们的二进制表示的对应位都为1时返回1。按位与运算符可以用于任何整数类型。
int a = 5; //二进制:0101
int b = 3; //二进制:0011
int result = a & b; //二进制:0001
在上面的代码示例中,按位与运算符将a和b的二进制表示对应位进行与运算,结果为1的只有a和b的二进制表示的最右位,所以结果为1。
按位或运算符(|)
按位或运算符用于连接两个整数并在它们的二进制表示的对应位的任意一位为1时返回1。按位或运算符也可以用于任何整数类型。
int a = 5; //二进制:0101
int b = 3; //二进制:0011
int result = a | b; //二进制:0111
在上面的代码示例中,按位或运算符将a和b的二进制表示对应位进行或运算,结果为1的位有a、b的二进制表示的最右位以及最左位,所以结果为0111。
按位异或运算符(^)
按位异或运算符用于连接两个整数并在它们的二进制表示的对应位的任意一位为1而另一位为0时返回1。按位异或运算符也可以用于任何整数类型。
int a = 5; //二进制:0101
int b = 3; //二进制:0011
int result = a ^ b; //二进制:0110
在上面的代码示例中,按位异或运算符将a和b的二进制表示对应位进行异或运算,结果为1的位有a、b的二进制表示的第2位和第3位,所以结果为0110。
左移位运算符(<<)
左移位运算符将二进制数向左移动指定的位数。左移位运算符对整数进行操作。
int a = 5; //二进制:0101
int result = a << 1; //二进制:1010
在上述代码示例中,a的二进制表示向左位移了一位,所以最终的结果是1010。
右移位运算符(>>)
右移位运算符将二进制数向右移动指定的位数。右移位运算符同样对整数进行操作。
int a = 5; //二进制:0101
int result = a >> 1; //二进制:0010
在上述代码示例中,a的二进制表示向右位移了一位,所以最终的结果是0010。
希望上述代码示例能够对您有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#运算符之与,或,异或及移位运算小结 - Python技术站