BitArray类管理一个位值数组,这些值表示为布尔值,其中true指示bit为1,false指示bit为0。此类包含在命名空间System.Collections中。 BitArray.RightShift(Int32)方法用于将位数组的位向右移动一个位置,并在已移动的位置加上零。原始BitArray对象将在执行右移操作时被修改。
Syntax: public System.Collections.BitArray RightShift (int count);
Parameter:
count is an immutable value type that represents signed integers with values that range from negative 2,147,483,648 through positive 2,147,483,647.
Return value : It returns Bit Array.
示例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