📜  C#中的BitArray.RightShift()方法与示例

📅  最后修改于: 2021-05-29 19:02:06             🧑  作者: Mango

BitArray类管理一个位值数组,这些值表示为布尔值,其中true指示bit为1,false指示bit为0。此类包含在命名空间System.Collections中BitArray.RightShift(Int32)方法用于将位数组的位向右移动一个位置,并在已移动的位置加上零。原始BitArray对象将在执行右移操作时被修改。

示例1:假设我们有位数组10011,我们想将其向右移动两个位置。

最终结果是00100。

// C# program to illustrate the 
// RightShift(Int32) Method
using System;
using System.Collections;
  
class GeeksforGeeks {
  
    // Main Method
    public static void Main()
    {
  
        // Creating a BitArray of 
        // size 5 named BitArr
        BitArray BitArr = new BitArray(5);
  
        // Initializing values in BitArr
        BitArr[0] = true;
        BitArr[1] = true;
        BitArr[2] = false;
        BitArr[3] = false;
        BitArr[4] = true;
  
        // function calling
        Display(BitArr.RightShift(2));
    }
  
    // Displaying the result
    public static void Display(IEnumerable myList)
    {
        foreach(Object obj in myList)
        {
            Console.WriteLine(obj);
        }
    }
}
输出:
False
False
True
False
False

示例2:假设我们有位数组100011,我们想将其向右移动三个位置。

最终结果是011000。

// C# program to illustrate the 
// RightShift(Int32) Method
using System;
using System.Collections;
  
class GeeksforGeeks {
  
    // Main Method
    public static void Main()
    {
  
        // Creating a BitArray
        BitArray BitArr = new BitArray(6);
  
        // Initializing values in BitArr
        BitArr[0] = true;
        BitArr[1] = false;
        BitArr[2] = false;
        BitArr[3] = false;
        BitArr[4] = true;
        BitArr[5] = true;
  
        // function calling
        Display(BitArr.RightShift(3));
    }
  
    // Displaying the result
    public static void Display(IEnumerable myList)
    {
        foreach(Object obj in myList)
        {
            Console.WriteLine(obj);
        }
    }
}
输出:
False
True
True
False
False
False

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.bitarray.rightshift?view=netcore-2.2