C#位数组BitVector32
一、引言
前面的位数组BitArray的篇章我们介绍过基本知识以及BitArray的基本知识,今天来介绍BitVector32。
首先BitArray是个长度可以变的位数组,适用于事先不知道位长的情况。本篇介绍的BitVector32的长度是固定为32个位。
由于BitVector32结构的效率比较高,因为它是一个值类型,在整数栈上存储,所以它的效率比较快,这也是他的一个重要优点。
二、BitVector32结构的基础
1、BitVector32在System.Collections.Specialized命名空间内找到。
2、BitVector32的长度固定为32位不可更改,如果想要更多的数据就需要重新的定义BitVector32。
3、BitVector32是个结构它存储在栈上,而BitArray是个类,它是引用类型。
三、BitVector32常用方法
namespace System.Collections.Specialized
{
public struct BitVector32 //首先它是是个结构,存储在栈上
{
public BitVector32(BitVector32 value); //用现有的来初始化
public BitVector32(int data); //以指定int值初始化
public int Data {
get; } //返回当前BitVector32变量的值
public int this[BitVector32.Section section] {
get; set; }//以索引方式获取或设置指定片段上的值
public bool this[int bit] {
get; set; } //按照掩码来访问或设置值,注意bit是[掩码]不是[下标]
public static int CreateMask(); //创建第一个屏蔽,即值为1
public static int CreateMask(int previous); //按照指定值创建屏蔽
public static BitVector32.Section CreateSection(short maxValue); //创建一个片段并指定最大值
public static BitVector32.Section CreateSection(short maxValue, BitVector32.Section previous); //在指定的片段后面再创建一个片段并制定最大值。
public override bool Equals(object o); //相等判断
public override int GetHashCode