Bitvector64进行转换.Section到Bitvector32

本文关键字:Bitvector32 Section 转换 Bitvector64 | 更新日期: 2023-09-27 18:05:38

我已经为BitVector64创建了mysec变量。对于小于8的版本,我想使用BitVector32

生成值
    static BitVector64.Section mySect1;
    static BitVector64.Section mySect2;
    static BitVector64.Section mySect3;
if (versions) > 7)
            mySect2 = BitVector64.CreateSection(14, mySect1);  // V1      - 3 bits
        else
            mySect3 = BitVector32.CreateSection(7, mySect2);

我现在需要什么

  1. Mysect2在BitVector64.Section中具有值。我需要将显式转换为BitVector32。

下面的对话对我不起作用

            mySect3 = BitVector32.CreateSection(7, (BitVector32.Section) mySect2);
  1. 将在BItVector32中获得值。mysect3的Section需要转换为BitVector64。部分

下面的对话对我不起作用

            mySect3 = BitVector32.CreateSection(7, (BitVector32.Section) mySect2) as BitVector34.Section;

   mySect3 = (BitVector64.Section) BitVector32.CreateSection(7, (BitVector32.Section) mySect2) ;

Bitvector64进行转换.Section到Bitvector32

在。net框架中没有名为"BitVector64"的类型。我猜你是从哪里抄来的。显然,您复制的这段代码不支持从BitVector32的隐式转换。Section转换为BitVector64.Section.

这并不奇怪,它提供的优化非常小。相反,从int到ulong的转换相对昂贵,不值得节省很少的内存。

BitVector32(可能还有BitVector64)显式地使位操作快速有效。比BitArray更快,因为它可以利用cpu寄存器操作。