Bool to bit 在 C# 中

Bool to bit in the C#

我们有两个布尔变量,我想变成这样:

b1      b2       bin  int
true ,  true =   11   (3)
false , true =   01   (2)
true ,  false =  10   (1)
false , false =  00   (0)

BitVector32可以做到。

using System.Collections.Specialized;

namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            var b1 = false;
            var b2 = true;

            var bitvector = new BitVector32();
            bitvector[1] = b1;
            bitvector[2] = b2;

            var intValue = bitvector.Data;
        }
    }
}

但请记住,索引需要一个位掩码,因此索引需要以 2 的幂数增长。1, 2, 4, 8, 16

掩码可以由1 << n生成。其中 n 是您要访问的位(0 索引)。

BitVector32 还提供了 CreateMask 方法来生成它们。