C# 位运算符

C# 位运算符仅适用于数字。在这些运算符对给定的输入(数字)进行操作之前,系统会将该数字从十进制转换为二进制。然后,位运算符对其二进制位执行操作。最后,将二进制位转换回十进制后,结果以十进制形式显示给我们。

输入(十进制)->(十进制转二进制)-> C# 位运算符对位执行必要的操作 -> 位转换为十进制 -> 结果以十进制形式显示。

运算示例
& 按位与16 & 10 =0
| 按位或16 | 10 =26
~ 按位补码~16= -17
^ 异或16 ^ 10=26

让我们看看这些位运算符的真值表。

Xyx & yx | yx ^ y
00000
01011
10011
11110

C# 位运算符示例

下面的示例向您展示了所有位运算符的工作功能。

using System;
 
class Bitwise_Operators
{
   static void Main()
   {
     int x = 16;
     int y = 10;
     int result;
 
     result = ~x;
     Console.WriteLine("~{0} is {1}", x, result);
 
     result = x & y;
     Console.WriteLine("{0} & {1} = {2}", x, y, result);

     result = x | y;
     Console.WriteLine("{0} | {1} = {2}", x, y, result);
 

     result = x ^ y;
     Console.WriteLine("{0} ^ {1} = {2}", x, y, result);
   }
}
Bitwise Operators Example

x = 16 且 y = 10

C# 位运算执行如下

首先,将 16 和 10 转换为位,16 的二进制形式是 10000,10 的二进制形式是 1010。

~(16) 是 -17,这是 16 的二进制补码。

10000 & 01010 是 00000 – 结果是 0

10000 | 01010 是 11010 – 11010 的十进制形式是 26

10000 ^ 01010 是 11010 – 11010 的十进制形式是 26

C# 移位运算符

C# 位移位运算符移动位的位置。这意味着左操作数的位位置会向左或向右移动,移动的位置数由右操作数指定。C# 通过右移 (>>) 和左移 (<<) 运算符实现位移。

移位运算符运算示例
>>右移操作16 >> 3 是
<<左移操作16 << 2

让我们看一个使用这些位移位运算符的示例代码。

位左移和右移运算符示例

using System;
 
 class Shift_Operators
 {
     static void Main()
     {
         int x = 16;
         int result;
 
         result = x >> 3;
         Console.WriteLine("{0} >> 3 is {1}", x, result);
 
         result = x << 2;
         Console.WriteLine("{0} << 2 is {1}", x, result);
     }
 }

输出

16 >> 3 is 2
16 << 2 is 64

在上面的代码中

16 >> 3,16 的二进制形式是 0001 0000

10000 向右移动三位,即 0000 0010,其十进制值为 2。

16 << 2,将 16 的二进制形式,即 0001 0000,向左移动 2 位后,结果是 0100 0000,其十进制形式是 64。

分类 C#