当前位置:首页C# > 正文

C#的几种位操作运算,与、或、非、异或、左移、右移

作者:野牛程序员:2024-04-12 21:20:04C#阅读 3196
C#的几种位操作运算,与、或、非、异或、左移、右移

位操作运算是在计算机编程中常用的一种技巧,特别是在处理底层数据时。以下是C#中常用的几种位操作运算:

  1. 与(AND)运算符:用符号“&”表示,将两个操作数的对应位进行与操作,只有当两个操作数的对应位都为1时,结果位才为1,否则为0。

  2. 或(OR)运算符:用符号“|”表示,将两个操作数的对应位进行或操作,只要两个操作数的对应位中有一个为1,结果位就为1,否则为0。

  3. 非(NOT)运算符:用符号“~”表示,将操作数的每一位取反,即0变为1,1变为0。

  4. 异或(XOR)运算符:用符号“^”表示,将两个操作数的对应位进行异或操作,只有当两个操作数的对应位不相同时,结果位才为1,否则为0。

  5. 左移(Left Shift)运算符:用符号“<<”表示,将操作数的所有位向左移动指定的位数,右侧空出的位用0填充。

  6. 右移(Right Shift)运算符:用符号“>>”表示,将操作数的所有位向右移动指定的位数,左侧空出的位用原来的符号位填充(对于正数,用0填充;对于负数,用1填充)。

这些位操作运算可以在需要高效处理二进制数据的场景中发挥重要作用,如位掩码、数据压缩和加密算法等。

以下是每种位操作运算的简单示例代码:

using System;

class Program
{
    static void Main()
    {
        // 与(AND)运算符示例
        int a = 5;    // 二进制表示为 0000 0101
        int b = 3;    // 二进制表示为 0000 0011
        int resultAnd = a & b;  // 结果为 0000 0001,即十进制的1
        Console.WriteLine($"与(AND)运算结果:{resultAnd}");

        // 或(OR)运算符示例
        int resultOr = a | b;   // 结果为 0000 0111,即十进制的7
        Console.WriteLine($"或(OR)运算结果:{resultOr}");

        // 非(NOT)运算符示例
        int c = 5;    // 二进制表示为 0000 0101
        int resultNot = ~c;  // 结果为 1111 1010,即十进制的-6
        Console.WriteLine($"非(NOT)运算结果:{resultNot}");

        // 异或(XOR)运算符示例
        int resultXor = a ^ b;  // 结果为 0000 0110,即十进制的6
        Console.WriteLine($"异或(XOR)运算结果:{resultXor}");

        // 左移(Left Shift)运算符示例
        int d = 5;    // 二进制表示为 0000 0101
        int resultLeftShift = d << 2;  // 结果为 0001 0100,即十进制的20
        Console.WriteLine($"左移(Left Shift)运算结果:{resultLeftShift}");

        // 右移(Right Shift)运算符示例
        int e = 20;    // 二进制表示为 0001 0100
        int resultRightShift = e >> 2;  // 结果为 0000 0101,即十进制的5
        Console.WriteLine($"右移(Right Shift)运算结果:{resultRightShift}");
    }
}


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • 最新推荐

    热门点击