位运算符只不过是在位级别上进行的运算,C# 允许使用 AND、OR、NOT 等运算符进行各种位运算。通常用于位运算的运算符是 AND (&),它返回 true当两个操作数都为 true 时,OR (|) 仅当操作数为 true 时返回 true,Exclusive OR(XOR 或 ^)根据输入返回可比较的结果,Left Shift (>) 用于将位向右移动,补码 (~) 用于单个操作数,它根据输入返回补码位值。
以下是 C# 中定义的各种类型的按位运算符:
下面的文章解释了按位运算符的工作原理,下面提到的是 C# 中按位运算符的示例:
如果两个值都为 True,则在使用 AND 运算时仅给出 True。该运算符可以使用“&”运算符来实现。
示例:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { byte myvarA = 10;// This binary is equivalent for 10 is 01010 byte myvarB = 20;// This binary is equivalent for 20 is 10100 long myresult = myvarA & myvarB; // The result of AND operation result is: 00000 Console.WriteLine("{0} AND {1} result is :{2}",myvarA,myvarB,myresult); myvarA = 10;// This binary is equivalent for 10 is 01010 myvarB = 10;// This binary is equivalent for 10 is 01010 myresult = myvarA & myvarB; // The result of AND operation result is: 01010 Console.WriteLine("{0} AND {1} result is : {2}",myvarA,myvarB,myresult); } }
输出:
打开文本编辑器并使用您选择的名称保存扩展名为 .cs 的文件。使用合适的 C# 编译器执行程序,您将得到以下输出:
如果两个值都为 FALSE,则在使用 OR 方法时仅提供 FALSE。 OR 运算在所有其他情况下均成立。该运算符可以使用‘|’运算符来实现。
示例:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { byte myvarA = 10;// This binary is equivalent for 10 is 01010 byte myvarB = 20;// This binary is equivalent for 20 is 10100 long myresult = myvarA | myvarB; // The result of OR operation result is: 11110 Console.WriteLine("{0} OR {1} result is :{2}",myvarA,myvarB,myresult); myvarA = 10;// This binary is equivalent for 10 is 01010 myvarB = 10;// This binary is equivalent for 10 is 01010 myresult = myvarA | myvarB; // The result of OR operation result is: 01010 Console.WriteLine("{0} OR {1} result is : {2}",myvarA,myvarB,myresult); } }
输出:
编译并执行上面的代码,你将得到以下输出:
如果相关位唯一,则给出 1,否则给出 0。该运算符可以使用“^”运算符来实现。
示例:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { int num1 = 14, num2 = 11, myresult; myresult = num1^num2; Console.WriteLine("{0} ^ {1} = {2}", num1, num2, myresult); } }
输出:
编译并执行上面的代码,你将得到以下输出:
如果对二进制值执行右移运算,则这些位将移到右侧的一个位置。该运算符可以通过使用‘>>’运算符来实现。
示例:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { byte myvarA = 10;// This binary is equivalent for 10 is 01010 long myresult = myvarA >> 1; // The right shift operation result is : 0101 Console.WriteLine("{0} is right shifted to 1 position result is:{1}",myvarA,myresult); } }
输出:
编译并执行上面的代码,你将得到以下输出:
如果使用二进制值执行 LeftShift 运算,则这些位将移到左侧的一个位置。该运算符可以使用“
示例:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { byte myvarA = 10;// This binary is equivalent for 10 is 01010 long myresult = myvarA << 1; // The left shift operation result is : 10100 Console.WriteLine("{0} is left shifted to 1 position result is:{1}",myvarA,myresult); } }
输出:
编译并执行上面的代码,你将得到以下输出:
按位求补运算符由“~”指定,它是一种仅对一个操作数进行操作的一元运算符。 ~ 运算符反转一点,即从 1 切换到 0 以及从 0 切换到 1。
示例:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { int num = 22, num_result; num_result = ~num; Console.WriteLine("~{0} = {1}", num, num_result); } }
输出:
编译并执行上面的代码,你将得到以下输出:
在本文中,我们了解了如何在 C# 中使用按位运算符及其功能。这些运算符用于对操作数(也称为二进制数字)执行逐位运算。按位运算符逐个单元地分析两个输入函数的二进制解释。这些运算符主要用于通信堆栈,其中重要信息由连接到数据的标头中的各个位来表示。
以上是C# 中的按位运算符的详细内容。更多信息请关注PHP中文网其他相关文章!